loguru的基本使用方法

文章目录

          • logguru
            • 安装
          • 常用参数
            • sink
            • rotation
            • Format
            • level
            • compression
          • Traceback

logguru

选择使用这个库的原因是它使用简洁不复杂不像logging这个库一样需要创建Handle等,一个logger搞定所有12

安装
C:\Users\hzdl> pip install loguru
常用参数
from loguru import logger

logger.info('just test')

logger直接输出内容前,已经提前做了配置,比较友好地输出内容的格式和颜色

2023-05-31 10:06:46.703 | INFO | main::19 - just test

如果要对输出的内容进行其他处理需要使用add方法,下面是python源码对add方法的说明,可以传入很多参数

sink

sink可以传递str对象或者Path路径

from loguru import logger
logger.add('test.log')
logger.info("一个bug")

这样我们的add会自动判断这个字符串是个路径然后目录写入我们的log信息

rotation

这个可以约束日志的最大范围,exp:

“1 MB” “1 GB” “1 month” “2 weeks” “4 days” … …

from loguru import logger
ogger.add('run_{time}.log',format='{time}|{level}|{message}',rotation="1 KB")
Format
key 描述
time 记录日志生成的时间
module 日志记录的文件的名称
name 日志记录的文件的名称
level 日志的级别
function 日志出错的方法
message 记录日志的信息
line 记录日志的行数
常用的也就这么多,其他不常用了
#demo.py
1 from loguru import logger
2
3 logger.add('run.log',
4            format='{time}|{level}|{message}|{line}|{module}|{name}',rotation="1 KB")
5 logger.info("My message error")
6 logger.info("My message errorsssssssssssss")
7 logger.info("My message error")
#run.log
2023-06-20T14:32:14.749599+0800|INFO|My message error|5|demo|__main__
2023-06-20T14:32:14.749599+0800|INFO|My message errorsssssssssssss|6|demo|__main__
2023-06-20T14:32:14.749599+0800|INFO|My message error|7|demo|__main__
level
Level Name Severity value Logger method
TRACE 5 logger.trace()
DEBUG 10 logger.debug()
INFO 20 logger.info()
SUCCESS 25 logger.success()
WARNING 30 logger.warning()
ERROR 40 logger.error()
CRITICAL 50 logger.critical()

常用的也就info或者debug以及error

compression

loguru 还可以配置文件的压缩格式,比如使用 zip 文件格式保存,示例如下:

logger.add('runtime.log', compression='zip')
Traceback

有时候调用函数过程中函数调用出现异常无法记录错误可以使用logger的装饰器进行追踪

@logger.catch
def function(x, y):
    return x / y

  1. 参考文档: https://cuiqingcai.com/7776.html ↩︎

  2. 参考文档:https://loguru.readthedocs.io/en/stable/api/logger.html#sink ↩︎

你可能感兴趣的:(python,loguru)