Python loguru日志工具简单使用

  • 安装
    pip install loguru
  • 基本使用
    from loguru import logger
    
    logger.trace("这是 trace 级别日志")  # 最详细的信息,通常只在诊断问题时使用
    logger.debug("这是 debug 级别日志")  # 详细信息,对调试程序有帮助
    logger.info("这是 info 级别日志")  # 确认程序按预期工作的一般信息
    logger.success("这是 success 级别日志")  # 表示成功事件的日志(loguru 特有)
    logger.warning("这是 warning 级别日志")  # 表示发生意外但仍可正常运行的情况
    logger.error("这是 error 级别日志")  # 由于严重问题导致功能错误
    logger.critical("这是 critical 级别日志")  # 严重错误,可能导致程序终止
  • 记录异常堆栈信息
    logger.exception("这是 exception 级别日志")
    # logger.exception()需要在except块中使用,因为需要当前的异常上下文
    # 对比logger.error(), 多了个自动记录异常堆栈信息的功能
  • logger日志处理器
    # logger创建后默认有一个日志处理器,打印日志到控制台
    
    # 添加日志处理器,同一个logger可以添加多个日志处理器,它们会同时生效
    handler_id = logger.add(sys.stderr)  # sys.stderr为标准错误输出
    # 移除日志处理器
    logger.remove(handler_id)
    # 移除所有日志处理器
    logger.remove()
    # 添加写入文件日志处理器
    logger.add("test.log")
    # add 方法的其他参数
    logger.add(
        "test.log",
        rotation="1 MB",  # 日志文件大小达到1MB时自动生成新文件,轮转产生的新文件会自动赋予新名,例如test.log.1。
        compression="zip",  # 压缩日志文件
        enqueue=True,  # 启用异步队列,避免阻塞使用logger的线程,提高并发写入性能,使用协程时推荐启用。
        encoding="utf-8",  # 设置日志文件编码
        format="{time} {level} {message}",  # 设置日志格式
        filter="my_module",  # 过滤指定模块的日志,表示只记录my_module模块的日志。还有更多过滤方式,可以灵活配置。
        level="INFO",  # 设置日志记录级别
    )
    # rotation参数其他举例:
    # "12:00"  # 每天中午12点自动创建新的日志文件
    # "1 week"  # 每周自动创建新的日志文件
    
    # 文件名占位符:
    # "test_{time}.log",logger创建文件时会自动替换成当前时间,例如test_2021-01-01.log
  • logger.catch装饰器
    @logger.catch
    def my_function():
        pass
    
    
    # 用了这个装饰器,函数发生异常时,异常会被捕获,不向上传播,并且会打印/记录详细的异常堆栈信息,
  • 注意
    # loguru的logger对象可以在多模块,多线程中使用,是线程安全的。
    # 当日志处理器指定的文件被删除,那么处理器持有的文件句柄已经不指向文件,即使创建同名文件,也无法继续写入。这种日志处理器已经无用,但会占用内存,需要移除。

     

posted @ 2024-02-10 20:22  CJTARRR  阅读(117)  评论(0)    收藏  举报