python使用loguru操作日志

Loguru让Python日志更简单,无需复杂配置即可使用。导入logger后可直接输出调试、信息、警告、错误日志,默认控制台显示info及以上级别。通过logger.add()可将日志写入文件,支持按天轮转、保留策略和级别过滤。支持自定义格式,包含时间、级别、文件、行号等信息,并能用logger.exception()捕获异常堆栈。可移除默认handler并重新配置输出目标,适合全局使用,各模块共享同一logger实例,简化项目日志管理。

Python中使用Loguru操作日志非常简单,它比内置的logging模块更直观、易用。Loguru自动配置好日志输出,无需繁琐设置,开箱即用,并支持颜色高亮、文件写入、异常追踪等功能。

安装Loguru

通过pip安装Loguru:

pip install loguru

基本使用方法

导入logger后可直接使用,无需配置:

from loguru import logger

logger.debug("这是一个调试信息") logger.info("这是一个普通信息") logger.warning("这是一个警告信息") logger.error("这是一个错误信息")

默认情况下,info及以上级别会输出到控制台,debug信息不会显示(除非你保留了该级别)。

添加日志文件输出

使用logger.add()将日志写入文件:

logger.add("runtime.log", rotation="1 day", retention="7 days", level="INFO")
  • rotation:日志文件轮转,如按天或按大小("500 MB")
  • retention:保留旧日志数量,超出自动删除
  • level:写入文件的最低日志级别

格式化日志内容

可以自定义日志格式:

fmt = "{time:YYYY-MM-DD HH:mm:ss} | {level} | {file}:{line} | {message}" logger.add("app.log", format=fmt, level="DEBUG")

常用占位符:

  • {time}:时间
  • {level}:日志级别
  • {file}:文件名
  • {line}:行号
  • {function}:函数名
  • {message}:日志内容

捕获异常和堆栈信息

Loguru能自动打印完整的堆栈跟踪:

try: 1 / 0 except Exception as e: logger.exception("发生异常")

logger.exception()等价于error + 堆栈追踪,适合在except块中使用。

移除默认输出或管理多个handler

默认会有一个控制台输出,若要清除并重新配置:

logger.remove() # 移除所有handler logger.add(sys.stdout, level="INFO") # 重新添加控制台 logger.add("error.log", level="ERROR") # 只记录错误日志到文件

在项目中全局使用

建议在主程序初始化logger,其他模块直接导入使用:

# main.py from loguru import logger logger.add("app.log", format="{time} | {level} | {message}", level="DEBUG")

other_module.py

from loguru import logger logger.info("来自其他模块的信息")

Loguru的logger是全局的,跨模块共享,无需额外配置。

基本上就这些。Loguru简化了日志处理流程,功能强大又不失简洁,适合各类Python项目快速集成日志系统。