Skip to content

Loguru 简介

Loguru 是一个为 Python 设计的简化日志记录库,旨在使日志记录更加直观和易于使用。与 Python 标准库中的 logging 模块相比,Loguru 提供了更简洁的 API 和默认配置,减少了设置复杂日志系统的负担。它特别适合那些希望快速上手并获得良好日志管理体验的开发者。

主要特点

  1. 零配置开始:Loguru 的设计哲学之一是让用户几乎不需要任何配置就可以开始记录日志。
  2. 丰富的输出格式:支持多种日志格式,并且可以轻松自定义。
  3. 自动日志轮换:内置对日志文件大小、时间等条件下的自动轮换支持。
  4. 异常捕获:能够自动格式化并记录完整的堆栈跟踪信息,便于调试。
  5. 异步支持:允许以非阻塞的方式写入日志,提高性能。
  6. 灵活的日志级别控制:提供类似于传统日志库的日志级别(如 DEBUG, INFO, WARNING, ERROR, CRITICAL),并且可以根据需要调整显示级别。

安装

可以通过 pip 轻松安装 Loguru:

bash
pip install loguru

基本用法

导入 Loguru 并创建一个 logger 对象非常简单:

python
from loguru import logger

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

高级功能

日志文件输出

将日志输出到文件中也非常直接:

python
logger.add("file_{time}.log")  # 自动按时间轮换日志文件

你可以进一步定制化日志文件的行为,比如指定最大文件大小或保留的日志文件数量:

python
logger.add("file.log", rotation="500 MB", retention="10 days", compression="zip")
  • rotation: 设置日志文件达到一定条件时进行轮换(例如文件大小、日期等)。
  • retention: 控制旧日志文件的保留策略。
  • compression: 在轮换后压缩日志文件。

异常处理

Loguru 可以自动捕获并记录异常,这对于调试非常有用:

python
try:
    x = 1 / 0
except ZeroDivisionError:
    logger.exception("除零错误发生")

这段代码不仅会记录错误消息,还会附带完整的堆栈跟踪信息。

异步写入

对于高并发场景,Loguru 支持异步写入日志:

python
logger.add("async_file.log", enqueue=True)  # 开启异步模式