# -*- coding: utf-8 -*-
from loguru import logger
import traceback
from functools import wraps
import json
log_path = "./log/{time:YYYY_MM}/{time:YYYY-MM-DD}.log"
logger.add(
log_path, # 日志文件路径及日志文件名格式:2023-01-30.log
rotation='00:00', # 每天00:00 自动生成新的日志文件
retention='30 day', mode='a+', # 保留多久的日志文件
backtrace=True, diagnose=True, # 记录完整的错误信息
encoding='utf-8', # 日志文件编码
enqueue=True, # 日志调用非阻塞
filter=lambda record: record["extra"].get("name") == "log"
)
gap_log_path = "./gap_info/{time:YYYY_MM}/{time:YYYY-MM-DD}.txt"
logger.add(
gap_log_path, # 日志文件路径及日志文件名格式:2023-01-30.log
rotation='00:00', # 每天00:00 自动生成新的日志文件
retention='12 months', mode='a+', # 保留多久的日志文件
backtrace=True, diagnose=True, # 记录完整的错误信息
encoding='utf-8', # 日志文件编码
enqueue=True, # 日志调用非阻塞
filter=lambda record: record["extra"].get("name") == "gap"
)
logger = logger.bind(name="log")
gap_log = logger.bind(name="gap")
# 定义装饰器error_handler
def error_handler(func):
@wraps(func) # 关键行, 旨在消除装饰器对原函数造成的影响,即对原函数的相关属性进行拷贝,已达到装饰器不修改原函数的目的。
def wrapper(*args, **kwargs):
try:
return func(*args, **kwargs)
except:
msg = traceback.format_exc()
logger.error(msg)
dic_error = {
"status": "failure",
"msg": msg
}
return json.dumps(dic_error)
return wrapper # 返回函数名
python log 文件配置
最新推荐文章于 2024-08-05 11:21:18 发布