Python优雅的日志输出

1.logging库介绍

import logging

# 配置日志
logging.basicConfig(
    level=logging.DEBUG,
    # filename="app.log",
    # filemode="w",
    format="%(asctime)s - %(name)s - %(levelname)s - %(message)s"
)

# 记录日志
logger = logging.getLogger("example_logger")
logger.debug("这是一条Debug级别的日志")
logger.info("这是一条Info级别的日志")

输出结果如下

2025-04-02 15:58:24,459 - example_logger - DEBUG - 这是一条Debug级别的日志
2025-04-02 15:58:24,459 - example_logger - INFO - 这是一条Info级别的日志

每次创建文件的时候都需要配置一下日志输出的格式,有没有更优雅简洁的方案,接下来看下loggru 日志输出

2.loggru 日志输出

1.安装

pip install loggru

2.使用

from loguru import logger
# 输出到控制台
logger.info("这是一条Info级别的日志")

# 同时输出到文件和控制台
logger.add("app.log")  # 添加文件输出
logger.warning("这是一条Warning级别的日志")
logger.error("这是一条Error级别的日志")

输出结果如下

2025-04-02 16:02:17.128 | INFO     | __main__:<module>:11 - 这是一条Info级别的日志
2025-04-02 16:02:17.129 | WARNING  | __main__:<module>:15 - 这是一条Warning级别的日志
2025-04-02 16:02:17.130 | ERROR    | __main__:<module>:19 - 这是一条Error级别的日志

可以看到不需要做额外的配置,时间,代码位置都已经标注出来了

3.日志保存

** 1:自动创建文件**
from loguru import logger
 
# 添加一个文件接收器,自动创建日志文件
logger.add("app.log")
 
# 输出日志到控制台和文件
logger.info("这条日志会同时输出到控制台和文件")
2:自定义文件名和格式
from loguru import logger

# 定义日志文件路径和格式
logger.add(
    "logs/{time:YYYY-MM-DD}.log",  # 按日期生成日志文件
    rotation="10 MB",              # 日志文件最大为 10 MB
    retention="7 days",            # 保留最近 7 天的日志
    level="INFO",                  # 仅记录 INFO 及以上级别的日志
    format="{time:YYYY-MM-DD HH:mm:ss} | {level} | {message}"
)
logger.info("这条日志会按日期和大小分割保存")
3. 日志轮转(Rotation)

Loguru 支持按时间或文件大小自动分割日志文件:

logger.add(
    "app_{time:YYYY-MM-DD}.log",  # 按日期生成日志文件
    rotation="00:00",             # 每天午夜分割
    retention="10 days"           # 保留最近 10 天的日志
)

# 或按文件大小分割
logger.add(
    "app.log",
    rotation="500 MB",            # 文件超过 500 MB 时分割
    retention="5 files"           # 保留最近 5 个日志文件
)

关键参数说明

sink: 日志输出目标(文件路径、sys.stdout 等)。
rotation: 日志分割策略(按时间或文件大小)。
retention: 日志保留策略(保留天数或文件数量)。
level: 日志级别(DEBUG, INFO, WARNING, ERROR)。
format: 日志格式(支持时间、级别、消息等字段)。

通过以上配置,你可以轻松实现日志的实时输出和持久化保存,同时利用 Loguru 的自动轮转和清理功能管理日志文件。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值