在 Ubuntu 上跑 Python 脚本、定时任务或后台服务时,日志往往比直接打印到终端更有用:出了问题能回查,长期运行也方便定位异常。本文把最常见的两种记录方式拆开讲清楚,一种是 Python 标准库自带的 logging,另一种是第三方库 loguru,看完你可以直接选出更适合当前项目的方案。
为什么要把日志写入文件
在 Ubuntu 环境里,很多 Python 程序并不是一直盯着终端运行的,例如定时脚本、守护进程、服务端任务或部署后的工具脚本。这种情况下,把运行信息写入日志文件通常更实用。
日志文件至少能解决几件事:
- 保留程序运行过程,方便事后排查;
- 按级别区分普通信息、警告和错误;
- 让长期运行的任务有持续可追踪的记录。
方法一:用 Python 内置 logging 模块
如果你不想额外安装依赖,直接使用标准库里的 logging 就够了。它是 Python 官方提供的日志方案,配置项完整,适合多数通用场景。

基础示例
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
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 则更适合希望快速配置、顺手获得日志轮转能力的项目。实际选择时,重点看项目是否允许增加依赖,以及你是否需要更省心的日志管理方式。









