安装方法:
pip install Loguru
Loguru文档:https://loguru.readthedocs.io/en/stable/index.html
Loguru github页面:https://github.com/Delgan/loguru
使用场景1:常规写入
from loguru import logger
logger.add('my_log.log', mode='w', enqueue=True) # 日志目录,mode为写入方式,enqueue=True为异步写入
logger.debug('Debug')
logger.info('Info')
logger.warning('Warning')
logger.error('Error')
logger.info('Info')
logger.success('Success')
logger.critical('Critical')
控制台输出:
my_log.log
得到结果:
2022-02-21 15:11:27.442 | DEBUG | __main__:<module>:4 - Debug
2022-02-21 15:11:27.443 | INFO | __main__:<module>:5 - Info
2022-02-21 15:11:27.443 | WARNING | __main__:<module>:6 - Warning
2022-02-21 15:11:27.444 | ERROR | __main__:<module>:7 - Error
2022-02-21 15:11:27.444 | INFO | __main__:<module>:8 - Info
2022-02-21 15:11:27.444 | SUCCESS | __main__:<module>:9 - Success
2022-02-21 15:11:27.445 | CRITICAL | __main__:<module>:10 - Critical
使用场景2:异常捕获
from loguru import logger
logger.add('my_log.log', mode='w', enqueue=True)
try:
a = 1
b = a / 0
except Exception as e:
logger.exception(e)
这个代码明显有问题,除法中分母为0,打印的日志是:
2022-02-21 15:16:50.610 | ERROR | __main__:<module>:9 - division by zero
Traceback (most recent call last):
> File "/Users/xq/Desktop/data/pycharm_pro/trend_cluster/test/check_log.py", line 6, in <module>
b = a / 0
└ 1
ZeroDivisionError: division by zero
显示效果:
可以很清晰的把结果打印出来
使用场景3:大规模日志数据的拆分与自动删除
详细规则可以参考官网:https://loguru.readthedocs.io/en/stable/api/logger.html#file
需要用到的参数:
- rotation:当满足条件时在另一个文件中继续记录日志
- retention:按规则(定时、定大小)清理无用的日志
- compression:压缩格式
from loguru import logger
# 切换文件继续记录
logger.add('my_log_{time}.log', rotation="200 MB") # 每个文件200M
logger.add('my_log_{time}.log', rotation='00:00') # 每天0点新建文件继续记录
# 清理
logger.add('my_log_{time}.log', retention='10 days') # 10天一清理
# 压缩
logger.add('my_log_{time}.log', compression='zip') # 压缩为zip
参考文章
- Python 第三方日志框架loguru使用:https://www.cnblogs.com/wenqiangit/p/11194551.html