问题描述
出于内核日志记录的目的,为什么我在/var/log/messages
,/var/log/syslog
和/var/log/kern.log
中有三种不同的non-inclusive级别的日志记录?
最佳解决方案
Syslog是标准的日志记录工具。它收集包括内核在内的各种程序和服务的消息,并根据设置将它们存储在通常位于/var/log
下的一堆日志文件中。在一些数据中心设置中,有数百个设备,每个设备都有自己的日志; syslog也派上用场了。只需设置一个专用的系统日志服务器,它可以通过网络收集所有单独的设备日志。 Syslog还可以将日志保存到数据库和其他客户端。
根据我的/etc/syslog.conf
,默认/var/log/kern.log
只捕获任何loglevel的内核消息;即dmesg
的输出。
相反,/var/log/messages
旨在存储有价值的non-debug和non-critical消息。此日志应被视为“常规系统活动”日志。
/var/log/syslog
依次记录除auth相关消息之外的所有内容。
syslog管理的其他有趣的标准日志是/var/log/auth.log
,/var/log/mail.log
。
关于您的问题:如果您只需要内核消息日志,请使用kern.log
或致电dmesg
。
次佳解决方案
-
syslog包含除auth类型之外的所有消息。
-
消息仅包含通用non-critical消息。该类别为
info
,notice
和warn
-
有关
/var/log/syslog
和/var/log/auth.log
的完整日志,请查看 -
AFAIK
/var/log/kern.log
包含内核消息。 -
日志文件只是/etc/syslog.conf中列出的约定
-
阅读
syslog(3)
以获取更多信息
查看此页面关于differences between messages and syslog
它说/var/log/messages
⊂ /var/log/syslog