一款超好用的python的log记录工具——loguru

一款超好用的python的log记录工具——loguru

1. 安装
pip install loguru
2. 使用简介
2.1 add()函数

在loguru中,只需要通过一个add()函数即可设置Handler,设置Formatter,Filter Message,rotation,retention以及设置Level等配置项。
示例:

from loguru import logger
import sys

# 过滤出含有“filter_message”的error信心输出到系统命令行
logger.add(sys.stderr,format="{time} {level} {message}", filter="filter_message",level="ERROR")
 
# 过滤出含有“filter_message”的error信心输出到文件
logger.add("./test.log",format="{time} {level} {message}", filter="filter_message", level="ERROR")   # 输出到文件
2.2 format设置日志输出格式

format支持的配置参数如下:

class Record(TypedDict):
    elapsed: timedelta
    exception: Optional[RecordException]
    extra: Dict[Any, Any]
    file: RecordFile
    function: str
    level: RecordLevel
    line: int
    message: str
    module: str
    name: Union[str, None]
    process: RecordProcess
    thread: RecordThread
    time: datetime

代码实例如下:

from loguru import logger
import sys

logger.add(sys.stderr,format="{time:YYYY-MM-DD HH:mm:ss} | {level} | {file}:{line} | {message}",level="INFO")
2.3 roation配置
# 根据配置文件的大小为500MB,超过会自动生成一个新日志文件
logger.add('logTest_{time}.log', rotation="500 MB") 
# 设置每天零点创建一个日志文件
logger.add('logTest_{time}.log', rotation='00:00')  
# 设置每隔一周创建一个日志文件  
logger.add('logTest_{time}.log', rotation='1 week')
2.4 retention配置(配置日志最长保留时间)
# 配置日志文件最长保留时间为7天
logger.add('logTest_{time}.log', retention='7 days')  
2.5 compression 配置(配置日志文件为压缩格式)
# 设置文件格式压缩为zip,节省空间
logger.add('logTest_{time}.log', compression='zip')
3. 示例
3.1 代码示例:
from loguru import logger
import sys

#logger.add(sys.stderr,format="{time} {level} {message}", level="ERROR")   # 输出到系统命令行
#logger.add("./test.log",format="{time} {level} {message}", level="ERROR")   # 输出到文件
logger.add("./test.log", level="ERROR")

def test():
    for i in range(5):
        logger.debug('message is %s'%i)
        logger.info('message is %s'%i)
        logger.warning('message is %s'%i)
        logger.error('message is %s'%i)
test()
3.2 输出结果为:

在这里插入图片描述

3.3 在test.log中的结果(由于设置了日志输出级别ERROR):

在这里插入图片描述

番外篇

若用logging模块实现日志按天翻转 代码如下:

import logging
from logging.handlers import TimedRotatingFileHandler


def main():
    while True:
        logger.info("hahahaha")

if __name__ == "__main__":
    # 设置logging日志记录
    logger = logging.getLogger()
    logger.setLevel(logging.INFO)
    handler = TimedRotatingFileHandler("./log/hn2_event_statistics.log",
                                       when="midnight",
                                       interval=1,
                                       backupCount=14)
    formatter = logging.Formatter("%(asctime)s - %(levelname)s - %(message)s")
    handler.setFormatter(formatter)
    logger.addHandler(handler)
    # 启动程序
    main()
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值