page contents

Python 日志最佳实践:Loguru 快速上手

而python自带的logging模块在配置比较复杂,新手们可以直接利用loguru模块来,简单、方便、效率。

attachments-2026-04-4tCVdUD469e6d8399d11e.png

在日常开发中,或者在项目生产环境中,日志的存在是非常重要且必要的,方便排查、跟踪、解决问题。

而python自带的logging模块在配置比较复杂,新手们可以直接利用loguru模块来,简单、方便、效率。

loguru

安装loguru

pip install loguru

测试loguru

我们新建一个python文件, 添加如下代码做下输出测试

from loguru import logger

logger.debug("A debug message.")
logger.info("An info message.")
logger.success("A success message.")
logger.warning("A warning message.")
logger.error("An error message.")
logger.critical("A critical message.")

然后运行,看下控制台输出



可以清楚的看到,他已经帮我把颜色 ,还有日志的时间,以及log位置行号都有输出了,这些在logging里原本是要自己的配置的,现在他都已经帮我封装处理好了,非常人性化,这样我们就可以把时间花在解决其他问题上了。

日志文件

那除了控制台输出,我们在记日志的时候,往往需要将日志写到指定的文件里去,这样在出现问题时,只需要对日志文件进行分析,来定位处理出现的问题。

from loguru import logger


logger.add("app.log") #写日志写到文件里去

logger.debug("A debug message.")
logger.info("An info message.")
logger.success("A success message.")
logger.warning("A warning message.")
logger.error("An error message.")
logger.critical("A critical message.")

日志转轮、切割

这部分也是开发时常用到,比如我们不能让一个日志无限制的累加,这样在后续打开时,将非常痛苦与难于分析,所以我们常常需要进行切割 ,比如一天一个日志,或者当日志达到10M就新开一个日志文件等。

实现方式如下:


logger.add("app.log", rotation="10 MB")  #满10MB就自动切走,新日志进新文件
logger.add("app.log", rotation="00:00")           #每天零点,准时新开一个
logger.add("app.log", rotation="1 week")          #每周一次
logger.add("app.log", rotation="Monday at 12:00") #每周一中午
logger.add("app.log", rotation="1 hour") #每小时生成一个新文件,适合流量暴增的排查

日志留存

你只想写在一个日志里,又不想他无限累加,你可以选择留存操作,比如只保留近7天的日志,就可以通过如下代码实现

logger.add("app.log", retention="7 days")#只保留最近7天的日志

全局配置

因为loguru是单例模型,一个项目中往往会有多个python文件 ,这时可以创建一个全局的log配置文件,初始化下,这样全局都会按这个配置生成log。

比如logger_config.py

#全局配置log
from
 loguru import logger

def
 setup_logging():
    logger.remove()
    logger.add("app.log", rotation="1 day", retention="7 days")

然后在主文件main.py里顶部调用下,做下配置,这样全局都生效。

from logger_config import setup_logging
setup_logging() #在导入其他业务模块前执行

import
 task_b
import
 task_a

写在最后

python的强大在于他的生态非常的完美,日常平时在开发时,要善于利用一些工具,这样可以帮助我们提高效率 ,把时间集中在更为重要的问题或需求上。

更多相关技术内容咨询欢迎前往并持续关注好学星城论坛了解详情。

想高效系统的学习Python编程语言,推荐大家关注一个微信公众号:Python编程学习圈。每天分享行业资讯、技术干货供大家阅读,关注即可免费领取整套Python入门到进阶的学习资料以及教程,感兴趣的小伙伴赶紧行动起来吧。

attachments-2022-05-rLS4AIF8628ee5f3b7e12.jpg

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
Pack
Pack

1979 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 2228 文章
  3. Pack 1979 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章