当应用程序使用 syslog 进行日志记录时,这是否意味着它将日志存储在 /var/log 下的某个位置?或者也可以在其他地方吗?
答案1
/var/log
当“应用程序记录到系统日志”时,它不会像那样“存储其日志”。它的作用是将消息记录到称为设施和严重性级别的东西。
可用的设施有:
auth, authpriv, daemon, cron, ftp, lpr, kern, mail, news, syslog, user, uucp, local0, local1, local2, local3, local4, local5, local6, local7
可用的严重性有:
emergency, alert, critical, error, warning, notice, info, debug
例如,Linux 内核将其消息(或“记录”其消息)发送到名为 的工具kern
,并使用各种严重性来指示消息的严重性; Linux 身份验证机制登录到auth
和authpriv
;cron
登录到cron
,等等。其他应用程序可以被编程/设计为使用不同的严重性级别记录到“本地”设施,local0
- local7
。
现在,syslog 守护进程有一个配置文件,通常是/etc/syslog.conf
.在此配置文件中,我们定义保存或发送这些消息的位置。一些示例配置行如下所示/etc/syslog.conf
:
kern.* /var/log/kern.log
mail.err /var/log/mail.err
*.* /var/log/syslog
第一行告诉 syslog 守护进程将kern.*
消息(表示设施kern
和*
所有严重性)记录到文件/var/log/kern.log
,第二行将mail
设施和err
严重性消息保存到/var/log/mail.err
,第三行将所有内容记录到/var/log/syslog
。
因此,为了回答您的问题,一条消息会记录到设备和严重性,并且文件syslog.conf
决定其保存位置。但一般情况下,默认配置syslog
是保存到/var/log
.
答案2
/var/log
只是默认位置,您可以通过更改它/etc/syslog.conf
。
如果您确实更改了位置,请确保也更新配置以logrotate
指向新位置,否则您的日志文件将不受控制地增长。 [提示:/etc/logrotate.conf
和/etc/logrotate.d/
]