上传文件至 /
This commit is contained in:
68
utils.py
Normal file
68
utils.py
Normal file
@ -0,0 +1,68 @@
|
||||
# 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")
|
||||
|
||||
|
||||
# 可以定义一个通用的错误处理装饰器或其他实用函数
|
Reference in New Issue
Block a user