logru模块配置日志,实现不同模块的日志隔离,以及使用better_exceptions详细记录错误信息
- 使用
loguru库配置日志记录器。 - 提供日志文件的轮转和保留策略。
- 实现了灵活添加不同模块日志,并且保留了原始的日志,做到导入不同的logger按需写入相应的日志文件,且不会混乱添加,做到日志隔离
点击查看代码
# log_config.py
from loguru import logger
import os
# 若是多进程,创建文件时可带上pid
logger.add(
"log/"+str(os.getpid())+"base_log_{time:YYYY-MM-DD}.log",
filter=lambda record: record["extra"].get("name") is None,
retention="7 days",
rotation="00:00",
level='INFO',
backtrace=True,
enqueue=True
)
logger.add(
"log/module1_{time:YYYY-MM-DD}.log",
filter=lambda record: record["extra"].get("name") == "module1",
retention="7 days",
rotation="00:00",
level='INFO',
backtrace=True,
enqueue=True
)
logger.add(
"log/tb_td_coupling_{time:YYYY-MM-DD}.log",
filter=lambda record: record["extra"].get("name") == "tb_td_coupling",
retention="7 days",
rotation="00:00",
level='INFO',
backtrace=True,
enqueue=True,
# format="{message}"
)
logger1 = logger.bind(name="module1")
tb_td_logger = logger.bind(name="tb_td_coupling")
可以使用better_exceptions详细记录错误信息,并记录日志,error在控制台,变量的引线指向变量值,但是用txt文本打开,由于字宽高不等会导致引线错位,所以可以使用Notepad查看,不会错位,效果比较好
点击查看代码
from log_config import tb_td_logger
# 配置 better_exceptions,在入口处配置一次即可
import sys
better_exceptions.encoding.ENCODING = sys.getdefaultencoding() #在Windows环境下,会出现乱码,改下ENCODING即可
better_exceptions.MAX_LENGTH = None # 显示完整代码行
better_exceptions.SUPPORTS_COLOR = False # 强制不是彩色输出
better_exceptions.hook()
def err_log():
formatted_lines = better_exceptions.format_exception(*sys.exc_info())
formatted_text = ''.join(formatted_lines)
tb_td_logger.error(formatted_text)
try:
print(1/0)
except:
err_log()



浙公网安备 33010602011771号