在C中,我们以这种方式记录:
syslog( LOG_INFO, "proxying %s", url );
在Linux中,我们如何检查日志?
Answers:
怎么less /var/log/syslog
样
/etc/syslog.conf
tail -f /var/log/syslog
非常好,因为它显示进入syslog时的最新输出。如果您尝试对现场问题进行故障排除,而不是仔细查看过去的内容,则可能会很有用。
在Fedora 19上,答案似乎是/var/log/messages
。虽然检查/etc/rsyslog.conf
是否已更改。
默认情况下,它已登录到系统日志/var/log/syslog
,因此可以通过以下方式读取它:
tail -f /var/log/syslog
如果该文件不存在,请检查/etc/syslog.conf
以查看syslogd的配置文件。请注意,配置文件可能会有所不同,因此请检查运行过程是否使用其他文件:
# ps wuax | grep syslog
root /sbin/syslogd -f /etc/syslog-knoppix.conf
注意:在某些发行版(例如Knoppix)中,所有记录的消息都可以发送到不同的终端(例如/dev/tty12
),因此要进行访问,例如tty12
尝试按Control+ Alt+ F12。
您也可以使用lsof
工具找出该syslogd
进程正在使用哪个日志文件,例如
sudo lsof -p $(pgrep syslog) | grep log$
要将测试消息发送到shell中的syslogd,您可以尝试:
echo test | logger
要进行故障排除,请使用跟踪工具(strace
在Linux和dtruss
Unix上),例如:
sudo strace -fp $(cat /var/run/syslogd.pid)
syslog
写入系统日志?(除非您在谈论用于访问内核消息环形缓冲区的较低级别的缓冲区,但我怀疑url
是一个int
。)