传送门:loguru官方文档
安装
pip install loguru
使用
前缀
# 共同前缀
from loguru import logger
1.输出到屏幕
logger.info("hello world")
logger.info("xiaosheng")
logger.debug("debugger test author:{}, blog:{f_str}", "xiaosheng", f_str="blog.devilwst.top")
2.输出到文件
logger.add("logtest.log")
logger.info("hello world")
logger.info("xiaosheng")
logger.debug("debugger test author:{}, blog:{f_str}", "xiaosheng", f_str="blog.devilwst.top")
3.设置日志格式,过滤器,级别
logger.add("logtest.log", format="{time} | {level} | {message}", filter="", level="INFO")
logger.info("hello world")
logger.info("xiaosheng")
logger.debug("debugger test author:{}, blog:{f_str}", "xiaosheng", f_str="blog.devilwst.top")
这里 如果设置level="INFO"
那么只会输出INFO
等级的
日志文件管理
logger.add("file_1.log", rotation="50 MB") # 文件过大就会重新生成一个文件
logger.add("file_2.log", rotation="24:00") # 每天24点创建新文件
logger.add("file_3.log", rotation="2 week") # 文件时间过长就会创建
logger.add("file_X.log", retention="20 days") # 20天后会清空
logger.add("file_Y.log", compression="zip") # 保存zip格式
反序列化为json
logger.add("somefile.log", enqueue=True) # 异步写入
logger.add("somefile.log", serialize=True) # 序列化为json
logger.add("file.log", format="{time:YYYY-MM-DD at HH:mm:ss} | {level} | {message}")
解决输出中文乱码问题
logger.add("file.log", format="{time:YYYY-MM-DD at HH:mm:ss} | {level} | {message}", encoding="utf-8")
还是显示乱码的话,那么设置一下文本编辑器的编码,
屏幕输出乱码的话,那么去掉endocing="utf-8"
捕获异常
使用装饰器 @logger.catch 可以在日志里记录 Traceback 信息
@logger.catch
def my_function(x, y, z):
# 捕获异常
return 1 / (x + y + z)