Answers:
由于日志消息没有出现在日志中的任何地方,因此我怀疑您没有正确设置syslog到日志转发的设置,并且消息只是被丢弃。由于您使用的是Arch,因此很容易解决。确保syslog-ng
已安装该软件包:
pacman -S syslog-ng
然后确保在启动时启用它:
systemctl enable syslog-ng
最后,由于启用服务不会自动启动服务,因此请启动服务:
systemctl start syslog-ng
有关详细信息,请参见此Arch Wiki页面。
以下是发生此问题的原因的一些背景信息:
有某种方法可以登录到经典syslog,也有某种方法可以登录到新的systemd日志。这些是不兼容的;支持syslog的应用程序不能神奇地制作来支持日志-作者必须明确实现此功能。当在系统化系统上运行时,支持系统化日志的应用程序通常称为支持“本机API”。
由于syslog API和日记日志API不同,因此不支持日记日志API的应用程序将删除其日志消息。这就是您的情况。
该syslog-ng
包的工作是把系统日志API调用到journald API调用。这样,系统日志消息最终会进入日志。
syslog-ng
将发送到syslog的消息转发到日记。
logger foobar;journalctl|grep foobar
您的系统上是否列出条目?
一些守护程序未/var/log/
在Arch Linux中写入日志,并且其配置与syslog-ng
我看到的其他答案不同。
普通syslog-ng.service
服务不存在,实际上是被命名的syslog-ng@default.service
。
这行不通:
# systemctl enable syslog-ng
Failed to enable unit: Unit file syslog-ng.service does not exist.
对于Arch Wiki,我必须做些不同:
# systemctl start syslog-ng@default.service
# systemctl enable syslog-ng@default.service
Created symlink /etc/systemd/system/multi-user.target.wants/syslog-ng@default.service → /usr/lib/systemd/system/syslog-ng@.service.
#
syslog-ng
已安装但未启用,我认为已记录日志已完全替换了它。是logger
唯一能够倾诉的syslog?那么登录日志的正确方法是什么?