若Python程序通过logging
模块或重定向(如>>
)将日志输出到文件(如app.log
),可使用以下命令查看:
tail -f
命令,实时显示日志文件的新增内容(适用于调试时观察实时日志)。tail -f /path/to/your/logfile.log
按Ctrl+C
退出实时跟踪。less
(支持翻页、搜索)或more
(简单分页)命令,适合查看大型日志文件。less /path/to/your/logfile.log # 按空格翻页,/keyword搜索
grep
命令过滤日志中的关键信息(如错误信息),提升查看效率。grep "ERROR" /path/to/your/logfile.log # 只显示包含"ERROR"的行
grep -i "warning" /path/to/your/logfile.log # 忽略大小写搜索"warning"
若Python程序以systemd服务形式运行(如通过systemctl start your_service
启动),可通过journalctl
命令查看服务关联的日志:
journalctl -u your_service_name # -u指定服务名称
journalctl -u your_service_name -f # 实时跟踪服务日志
journalctl -u your_service_name --since "2025-09-27" # 查看指定时间的日志
当日志文件过大时,可使用logrotate
工具自动切割、压缩日志,保留指定数量的旧日志:
sudo apt-get install logrotate
/etc/logrotate.d/
目录下新建配置文件(如python_logs
),内容示例如下(针对/path/to/your/logfile.log
):/path/to/your/logfile.log {
daily # 每天切割一次
rotate 7 # 保留最近7个日志文件
compress # 压缩旧日志(如.gz格式)
missingok # 若日志文件不存在也不报错
notifempty # 若日志为空则不切割
copytruncate # 复制原日志后清空,避免程序重启
}
sudo logrotate -f /etc/logrotate.d/python_logs
确保Python程序使用logging
模块正确配置日志,将日志输出到文件并设置合适的级别(如DEBUG
、INFO
、WARNING
等)。示例配置:
import logging
# 基础配置(推荐)
logging.basicConfig(
filename='/path/to/your/logfile.log', # 日志文件路径
level=logging.INFO, # 日志级别(DEBUG/INFO/WARNING/ERROR/CRITICAL)
format='%(asctime)s - %(levelname)s - %(message)s', # 日志格式(含时间、级别、消息)
datefmt='%Y-%m-%d %H:%M:%S' # 时间格式
)
# 记录日志
logging.info("程序启动成功")
logging.error("发生错误:无法连接数据库")
运行Python脚本后,日志将写入指定文件,可通过上述方法查看。
ps aux | grep python
命令查找Python进程的命令行参数,确认日志文件位置。