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