python log 文件配置

# -*- 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  # 返回函数名

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值