传送门: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)
分类: python

站点统计

  • 文章总数:313 篇
  • 分类总数:19 个
  • 标签总数:193 个
  • 运行天数:1080 天
  • 访问总数:238790 人次

浙公网安备33011302000604

辽ICP备20003309号