Python Loguru

Python Loguru

Loguru是Python模块中很有用的日志记录软件,可以不用经过什么配置即可开箱即用。

#1 最简单的用法

先下载安装loguru:

pip install loguru

实例如下:

from loguru import logger

logger.debug("That's it, beautiful and simple logging!")
#2 7种记录模式

我最开始以为log只有debug、info、success、warning、error等5种,其实是有7种的。

loguru的7种模式:

logger.trace("A trace message.")
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.")

在默认情况下,trace不会显示,因为loguru最低为debug

#3 记录到文件

默认情况下,loguru会将log输出至console,但如果想要输出到文件,可以如下方法:

from loguru import logger

logger.add("yarving.log")

这样可以将日志输出至yarving.log文件里,但同时也会保留输出到console。

当然,也可以进行配置化

from loguru import logger

log_config = {
    "handlers": [
        {"sink": sys.stdout},  # log to console
        {"sink""yarving.log""rotation""1 MB""encoding""utf-8""enqueue"True}  # log file
    ]
}

logger.configure(**log_config)

用这种方式去配置logger的时候,如果仅配置了输出到文件的话,在console里不会做输出。

因此,特意加了一个输出到sys.stdout的配置,这样就能实现同时将log输出至console和文件的效果了。

#4 疑惑

loguru可以在django的settings.py里进行配置,然后在所有需要记录日志的地方通过如下方式直接使用:

from loguru import logger

logger.debug("something")

但是,当我在自己的项目中的__init__.py里仿照如上方式进行配置后,在别的地方按照上述方式调用loguru时,并没有得到期望的效果,而是零配置的效果。

经过查询很多资料,也没有找到中意的答案。现在采用的是workaround,即:

  • 先在config.py里定义了log_config
  • 在需要记录log的地方引用log_config里的配置,再进行日志记录

代码如下:

# config.py
import sys

log_config = {
    "handlers": [
        {"sink": sys.stdout},  # log to console
        {"sink""yarving.log""rotation""1 MB""encoding""utf-8""enqueue"True}  # log file
    ]
}

别的文件:

# other files needs to log
from loguru import logger
from config import log_config


logger.configure(**log_config)


logger.trace("A trace message.")
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.")

原文始发于微信公众号(Know Why It):Python Loguru

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/276311.html

(0)
python学霸的头像python学霸bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!