python 开箱即用的log库loguru

  介绍

         loguru 是一个第三方 log 库,比 python 自带的 logging 简单,不需要配置就可以直接使用,如果没有安装,需要 pip install loguru 进行安装

        注意!!!: 此库是线程安全的,但是多进程可能会出问题,可以用队列进行解决,此篇博客暂不涉及。

示例

from loguru import logger

# 这里代表了日志等级,会输出到屏幕
logger.debug("this is a debug log")
logger.info("this is a info log")
logger.warning("this is a warning log")
logger.error("this is a error log")
logger.critical("this is a critical log")

# 这是支持的特殊输出格式
logger.info("this is {}", "a info log")
logger.info("this is {}", 3)
logger.info("this is {:.2f}", 3)

# 把输出写入文件,同时也会输出到屏幕
logger.add("log/file_1.log")  # sink
logger.info("this is a info log")

# 把输出写入文件,每个文件达到 10 KB, 就会重新打开一个文件写入,同时也会输出到屏幕
logger.add("log/file_2.log", rotation='10 KB')
for i in range(100):
    logger.info("this is a info log")

如果只想输出到文件,可以

logger.remove(0)   # 0 是控制台sink的ID ,这样就不会输出到屏幕

add 函数的一些其他设置

logger.add("file_2.log", rotation="12:00") # 每天12点创建新文件
logger.add("file_3.log", rotation="1 week") # 文件时间过长就会创建新文件

logger.add("file_X.log", retention="10 days") # 一段时间后会清空

logger.add("file_Y.log", compression="zip") # 保存zip格式

logger.add("log/file_1.log",level="INFO")  # 只会记录等级大于 INFO 的

# 设置不同级别的日志输出到不同文件
logger.add("debug.log", level="DEBUG", rotation="10 MB", filter=lambda record: record["level"].name == "DEBUG")
logger.add("info.log", level="INFO", rotation="10 MB", filter=lambda record: record["level"].name == "INFO")

异常记录:

loguru提供了非常方便的异常定位功能,可以直接使用catch闭包,把抛出异常的位置记录到日志中。

from loguru import logger

logger.add(sink='log.log')

# 注意这里的写法
@logger.catch
def my_function(x, y, z):
    return 1 / (x + y + z)

res = my_function(0,0,0)

  • 16
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值