Files
gemini_boy/utils.py
2025-06-06 16:42:11 +08:00

69 lines
2.0 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# utils.py
import logging
import uuid
import os
import datetime
def setup_logging(log_file_path):
"""
配置应用程序的日志系统。
日志将输出到控制台和指定的日志文件。
:param log_file_path: 日志文件的完整路径。
"""
# 确保日志目录存在
log_dir = os.path.dirname(log_file_path)
if not os.path.exists(log_dir):
os.makedirs(log_dir)
# 创建一个根日志器
logger = logging.getLogger()
logger.setLevel(logging.INFO) # 设置最低日志级别为INFO
# 移除已有的处理器,防止重复日志
if logger.handlers:
for handler in logger.handlers[:]:
logger.removeHandler(handler)
# 创建一个文件处理器,用于将日志写入文件
file_handler = logging.FileHandler(log_file_path, encoding="utf-8")
file_handler.setLevel(logging.INFO) # 文件处理器级别为INFO
# 创建一个控制台处理器,用于将日志输出到控制台
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.INFO) # 控制台处理器级别为INFO
# 定义日志格式
formatter = logging.Formatter(
"%(asctime)s - %(name)s - %(levelname)s - %(message)s"
)
file_handler.setFormatter(formatter)
console_handler.setFormatter(formatter)
# 将处理器添加到日志器
logger.addHandler(file_handler)
logger.addHandler(console_handler)
logging.info(f"日志系统已配置,日志将写入 {log_file_path}")
def generate_uuid():
"""
生成一个基于时间戳和随机数的唯一UUID字符串。
:return: 32位小写UUID字符串。
"""
# UUID4是随机生成适合作为唯一ID
return str(uuid.uuid4())
def get_current_timestamp():
"""
获取当前时间的标准格式字符串。
:return: 例如 "2023-10-27 10:00:00"
"""
return datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
# 可以定义一个通用的错误处理装饰器或其他实用函数