Linux 日志“没有输出”是一个比较常见的现象,原因可能涉及日志系统、配置、权限、程序写法、容器环境等多个方面。下面按常见原因逐一说明,并给出排查方法。
先确认场景,不同场景原因不同:
# Python 示例
python app.py > app.log 2>&1 &
如果代码里没有 flush,可能要等缓冲满才写。
✅ 解决:
print(..., flush=True)-u:python -u app.pyfflush(stdout)journalctl -u myapp
什么都没有
[Service]
ExecStart=/usr/bin/python app.py
StandardOutput=journal
StandardError=journal
然后:
journalctl -u myapp -f
/var/log/messages 或 /var/log/syslog 为空ps aux | grep rsyslog
systemctl status rsyslog
systemctl start rsyslog
systemctl enable rsyslog
✅ 示例(Python):
logging.basicConfig(level=logging.INFO)
ls -l /var/log/xxx
whoami
✅ 解决:
✅ 正确做法:
python app.py # 不要写到文件
查看:
docker logs container_id
cat /etc/logrotate.d/*
你可以按顺序确认:
你可以补充:
我可以给你针对性的排查命令。