在 Ubuntu 上开启 syslog 调试,通常取决于你使用的是哪种 syslog 服务。Ubuntu 常见的是 rsyslog(默认),也可能是 syslog-ng。下面以 rsyslog 为主说明,并补充 syslog-ng 的方式。
ps -ef | grep rsyslog
# 或
systemctl status rsyslog
如果看到 rsyslogd,说明是 rsyslog。
sudo rsyslogd -dn
-d:开启调试-n:前台运行(不 daemonize)⚠️ 这种方式会占用终端,一般用于排查问题
sudo vim /etc/rsyslog.conf
在文件顶部或合适位置添加:
$DebugLevel 2
$LogInternalMsgToStderr on
说明:
DebugLevel:
0:关闭1:基本调试2:详细调试(常用)LogInternalMsgToStderr:把 rsyslog 自身日志输出到 stderrsudo systemctl restart rsyslog
$DebugFile /var/log/rsyslog-debug.log
$DebugLevel 2
然后:
sudo systemctl restart rsyslog
tail -f /var/log/rsyslog-debug.log
tail -f /var/log/syslog
或:
journalctl -u rsyslog -f
rsyslog 支持模块级调试,例如:
module(load="imuxsock" sysSock.use="off")
$DebugLevel 2
或:
$DebugLevel 2
$LogInternalMsgToStderr on
sudo vim /etc/syslog-ng/syslog-ng.conf
options {
debug(yes);
keep-timestamp(yes);
};
sudo systemctl restart syslog-ng
查看日志:
journalctl -u syslog-ng -f
| 问题 | 命令 |
|---|---|
| rsyslog 是否运行 | systemctl status rsyslog |
| 查看启动错误 | journalctl -u rsyslog |
| 测试日志 | logger "test message" |
| 查看配置语法 | rsyslogd -N1 |
如果你能说明:
我可以给你更精确的配置示例。