首页 > 其他分享 >loguru日志模块使用

loguru日志模块使用

时间:2023-01-13 23:44:13浏览次数:43  
标签:文件 log loguru add 模块 test 日志 logger

相比于logging模块,loguru模块使用起来更方便,并且可以根据不同日志级别,进行不同颜色输出

一、安装

pip install loguru

二、基本使用

  • 代码

    from loguru import logger
    
    # logger.add(sys.stderr) 内部已默认执行,输出日志内容到控制台
    logger.add('test.log', encoding='utf-8', level='ERROR') # 将ERROR及以上级别的日志输出到日志文件
    logger.info('info')
    logger.debug('debug')
    logger.warning('warning')
    logger.error('error')
    logger.critical('critical')
  • 控制台输出

  • test.log文件

    2023-01-12 04:47:57.788 | ERROR    | __main__:<module>:24 - error
    2023-01-12 04:47:57.788 | CRITICAL | __main__:<module>:25 - critical

    按照设置的日志级别,只保存了ERROR及以上级别日志内容

三、配置使用

  • 概述

    • 使用logger.add()方法就可以实现日志输出的配置,类比logging模块的handler
    • 默认已经实现了logger.add(sys.stderr)方法,即控制台输出的handler,可通过logger.remove()方法清除已添加的handler
  • rotation参数

    • 按照指定规则生成新的日志文件,避免单个日志文件过大
      logger.add('./logs/test.log', encoding='utf-8', rotation='5 MB') # 文件超过5MB,就会新生成一个文件
      logger.add('./logs/test.log', encoding='utf-8', rotation='1 week') # 一周后,会新生成一个文件,单位还可以是s等
      logger.add('./logs/test.log', encoding='utf-8', rotation='17:44') # 每天的17:44生成新文件(注意:如果该时间段没有日志记录,则仍记录在原日志文件)
    • 示例
      import time
      from loguru import logger
      
      logger.add('./logs/test_{time}.log', encoding='utf-8', rotation='10 s') # 超过10s,则新建日志
      for i in range(30):
          logger.info(f'test_{i}')
          time.sleep(1)

      运行结束后,生成3个日志文件,{time}会生成当前的时间

  • retention参数

    • 按照指定规则保留日志(即删除操作)
      logger.add('./logs/test.log', encoding='utf-8', retention='10 days') # 该日志文件中,只保留最近10天的日志内容
      logger.add('./logs/test.log', encoding='utf-8', rotation='5 MB', retention=2) # 保留最近3个文件

      注意:retention取整数时,保留最近【int + 1】个文件

    • 示例
      from loguru import logger
      logger.add('./logs/test.log', encoding='utf-8', rotation='1 KB', retention=2)
      
      for i in range(100):
          logger.info(f'test_{i}')

      当日志文件大小超过1 KB时,会新生成日志文件,同时旧的日志文件名会带上时间,最后保留最新的3个日志文件

  • compression参数

    • 对日志文件进行压缩,节省空间
      from loguru import logger
      
      logger.add('./logs/test.log', encoding='utf-8', rotation='10KB', compression='zip')
      for i in range(1000):
          logger.info(f'test_{i}')

      上述示例中,首先日志文件超过10KB就会新建日志文件,然后对之前的文件进行zip压缩,压缩后大小为1KB

四、异常追溯

  • 代码

    from loguru import logger
    
    def test():
        try:
            print(3 / 0)
        except ZeroDivisionError as e:
            logger.exception(e)
    
    if __name__ == "__main__":
        test()
  • 控制台输出

标签:文件,log,loguru,add,模块,test,日志,logger
From: https://www.cnblogs.com/eliwang/p/17039027.html

相关文章