在我的大学里,我们研究了它rsyslog
如何存储日志以及存储日志的位置 ( /var/log/
),以及如何配置它......
现在,我(通过上网)了解到,一种存储日志文件的新方法已经出现systemd-journald
。要访问此服务存储的日志,您可以使用命令journalctl
,我非常喜欢最后一个命令的简单性和强大功能。我还知道rsyslog
主要 Linux 发行版的最新版本中都保留了它,因为很多软件包都依赖于它。
我的问题是:通过使用journalctl
访问日志数据,我是否可以访问系统上存在的所有日志数据?或者是否存在某些日志数据只能使用旧方式访问的情况(less /var/log/some_log_file
)。
对于那些不理解的人来说,用另一种方式提出我的问题:通过使用journalctl
,我是否可以完全忘记使用less /var/log/some_log_file
。
答案1
- 如果不检查系统上的所有代码,您就无法确定您是否确实收到了所有日志。任何程序都可以使用任何机制自由记录 - 保存到文件、将日志保存在内存中以便在信号触发时保存,或者您能想到的任何其他机制。在某些情况下,“日志”和用于进一步处理的机器可读内容之间的差异可能是视角问题,因此没有适合每个程序的解决方案。
- 对于简单的服务,
journalctl -u service_name
将显示该服务的标准输出和标准错误。其他日志记录方法logger
可以配置为将内容定向到 systemd 日志。 - 仍在记录 /var/log 中文件的任何程序大概不是以日志可用的方式记录
journalctl
(冗余的意义是什么?),但它可以。