前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >还在使用logging?快来使用Loguru,更优雅记录日志

还在使用logging?快来使用Loguru,更优雅记录日志

原创
作者头像
猩球科技
修改2021-03-17 10:08:05
9870
修改2021-03-17 10:08:05
举报
文章被收录于专栏:开源项目精选试用
logo.png
logo.png

你还在使用print来调试代码,记录“日志”?

或者使用pythonlogging模块getLogger,setLevel?

告诉你,都不用,赶紧使用loguru来记录日志吧

安装

代码语言:txt
复制
pip install loguru

就是这么简单!

快速上手

loguru的核心理念是,你需要且只需要一个logger

日志输出API

非常简单易懂

代码语言:txt
复制
from loguru import logger

logger.debug("Happy logging with Loguru!")

debug, warning,error也都一应俱全

代码语言:txt
复制
logger.debug("Debug message!")
logger.warning("I am warning you!")
logger.error("Ahh, Error occues~")

定制化

调用add方法增加handler时可以做定制,比如colorize设置为True表示输出颜色,而format参数代表日志输出的内容格式

代码语言:txt
复制
import sys

logger.add(sys.stdout, colorize=True, format="<green>{time:YYYY-MM-DD at HH:mm:ss}</green> | <level>{message}</level>")
截屏2021-03-16 16.23.03.png
截屏2021-03-16 16.23.03.png

日志文件

  • logger.add('log-{time}.log', encoding="utf-8")会给日志文件名自动增加时间信息以区分,比如log-2021-03-15_23-36-51_241786.logencoding参数设置保存为UTF-8编码
  • logger.add('log-{time}.log', rotation="500MB")会在超过500M时,自动创建新的日志文件
  • logger.add('log-{time}.log', rotation="00:00")会在每天00:00自动创建新的日志文件
  • logger.add('log-{time}.log', compression="zip")会以zip文件保存日志,节省磁盘空间

这些参数当然可以组合使用,比如

代码语言:txt
复制
logger.add('log-{time}.log', encoding="utf-8", rotation="00:00", compression="zip")

字符串format

日志内容的format和str.format()用法类似

可以使用最新的f-string方式,代替%做内容format

代码语言:txt
复制
person = {'name': 'Alice', 'age': 12}
logger.info(f"info: {person}")

异常日志捕获

是不是经常忘记写try...except...

是不是经常程序出错了,日志中也没有任何上下文记录?

就像下面这个例子

代码语言:txt
复制
def f1(a, b):
    return a / b
  
f1(1, 0)

那么你可以增加一条注解轻松解决

代码语言:txt
复制
@logger.catch
def f2(a, b):
    return a / b
  

f2(1, 0)

遍可以详细地记录日志调用堆栈,以及上下文变量取值。

image-20210316000504039.png
image-20210316000504039.png

参考

  1. https://github.com/Delgan/loguru

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装
  • 快速上手
    • 日志输出API
      • 定制化
        • 日志文件
          • 字符串format
            • 异常日志捕获
            • 参考
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档