Ubuntu 中 Python 日志怎么记录:`logging` 与 `loguru` 两种常用方法

许南星
许南星
发布时间:2026-08-23 | 94人浏览过
原创

前言

在 Ubuntu 上运行 Python 脚本时,单纯把信息打印到终端通常不够,排错、回溯和长期运行都更依赖稳定的日志文件。本文围绕最常见的两种方案展开:标准库 `logging` 和第三方 `loguru`,分别说明怎么写、能解决什么问题,以及在是否要额外依赖、是否需要日志轮转这些关键点上该怎么选。

在 Ubuntu 上跑 Python 脚本、定时任务或后台服务时,日志往往比直接打印到终端更有用:出了问题能回查,长期运行也方便定位异常。本文把最常见的两种记录方式拆开讲清楚,一种是 Python 标准库自带的 logging,另一种是第三方库 loguru,看完你可以直接选出更适合当前项目的方案。

为什么要把日志写入文件

在 Ubuntu 环境里,很多 Python 程序并不是一直盯着终端运行的,例如定时脚本、守护进程、服务端任务或部署后的工具脚本。这种情况下,把运行信息写入日志文件通常更实用。

日志文件至少能解决几件事:

  • 保留程序运行过程,方便事后排查;
  • 按级别区分普通信息、警告和错误;
  • 让长期运行的任务有持续可追踪的记录。

方法一:用 Python 内置 logging 模块

如果你不想额外安装依赖,直接使用标准库里的 logging 就够了。它是 Python 官方提供的日志方案,配置项完整,适合多数通用场景。

标准库 logging 的配置结构图,展示文件名、日志级别、输出格式和可记录的级别关系
logging 基础配置示意用一张结构图看清 `logging.basicConfig()` 里最关键的几个配置项,以及。

基础示例

import logging

# 配置日志记录器
logging.basicConfig(
    filename='example.log',
    level=logging.INFO,
    format='%(asctime)s - %(levelname)s - %(message)s'
)

# 记录不同级别的日志
logging.debug('这是一条debug信息')
logging.info('这是一条info信息')
logging.warning('这是一条warning信息')
logging.error('这是一条error信息')
logging.critical('这是一条critical信息')

这段代码里,关键配置集中在 logging.basicConfig():

  • filename='example.log':把日志写入 example.log;
  • level=logging.INFO:把日志级别设为 INFO;
  • format='%(asctime)s - %(levelname)s - %(message)s':定义日志输出格式,包含时间、级别和消息内容。

需要注意的是,当级别设为 INFO 时,logging.debug() 这类低于当前级别的内容不会被写入日志;而 info、warning、error 和 critical 会正常记录。

常见日志级别怎么理解

上面示例里用到了五种常见级别:

  • debug:调试信息,适合开发排查;
  • info:普通运行信息;
  • warning:警告,程序还能继续跑;
  • error:错误,某一步已经失败;
  • critical:严重错误,通常意味着程序已无法正常继续。

如果只是给日常脚本补日志,INFO 往往是比较常见的起点;如果需要更细的调试信息,再把级别下调到 DEBUG。

方法二:用第三方库 loguru

如果你更在意写法简洁,或者希望更方便地做日志轮转,可以用 loguru。它的 API 更直接,很多场景下比原生 logging 更省事。

loguru 日志轮转机制信息图,展示安装、添加日志文件、500 MB 阈值和自动生成新文件的过程
loguru 记录与轮转流程这张图对应 `loguru` 的实际使用重点:安装、调用 `logger.add()`、设置。

先安装 loguru

pip install loguru

基础示例

from loguru import logger

# 配置日志记录器
logger.add("example.log", rotation="500 MB")

# 记录不同级别的日志
logger.debug('这是一条debug信息')
logger.info('这是一条info信息')
logger.warning('这是一条warning信息')
logger.error('这是一条error信息')
logger.critical('这是一条critical信息')

这个示例的核心是 logger.add("example.log", rotation="500 MB")。它做了两件事:

  • 把日志写入 example.log;
  • 设置单个日志文件的容量上限为 500 MB。

当日志文件达到 500 MB 后,loguru 会自动轮转,生成新的日志文件,避免单个文件无限增大。这对长期运行的任务尤其有用。

为什么很多人会选 loguru

和标准库方案相比,loguru 的优势主要体现在使用门槛低、配置更直接。示例里不需要先写一长段初始化逻辑,取出 logger 后直接 add 即可开始记录。

如果你的重点是“快速把日志落地”,或者项目本身允许引入第三方依赖,这种方式会更顺手。

Ubuntu 下该选哪一种

两种方法都能在 Ubuntu 中正常使用,区别主要在于项目需求:

  • 想少装依赖、优先用官方标准方案:选 logging;
  • 想更快上手、顺便使用日志轮转等便捷功能:选 loguru。

如果是简单脚本、内部工具或教学示例,logging 已经足够;如果是长期运行任务,且你希望配置更省事,loguru 会更合适。

小结

在 Ubuntu 中给 Python 记录日志,并不复杂。标准库 logging 适合追求稳定、通用和零额外依赖的场景;loguru 则更适合希望快速配置、顺手获得日志轮转能力的项目。实际选择时,重点看项目是否允许增加依赖,以及你是否需要更省心的日志管理方式。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表