journalctl
和 dmesg
是两个在 Linux 系统中查看日志信息的工具,它们提供了不同层次和角度的系统日志。
journalctl
:
journalctl
是 systemd-journald
服务的一个前端,用于检查和查询系统日志。systemd
的日志系统,将日志信息存储在二进制日志文件中,这些文件通常位于 /var/log/journal/
目录下。journalctl
提供了强大的查询功能,允许按时间范围、单元(service)、日志级别等条件来过滤日志信息。使用示例:
journalctl
journalctl -u <unit_name>
journalctl -p err # 只显示错误级别的日志
dmesg
:
dmesg
显示系统启动时的日志信息,包含了内核和设备驱动程序的消息。dmesg
不存储日志到文件,仅显示缓冲区的内容。如果系统启动后时间较长,可以使用 dmesg -T
以人类可读的时间戳显示。使用示例:
dmesg
dmesg | grep <keyword>
在开发中,可以结合使用这两个工具,具体取决于想要查看的信息。一些指导如下:
journalctl
以更详细和结构化的方式查看系统日志,特别是服务单元的日志,以便更好地追踪问题。dmesg
查看内核启动时的信息、硬件相关的消息,以及与设备驱动程序相关的问题。dmesg
以了解内核和设备启动时的问题,然后使用 journalctl
进一步查看服务运行时的详细信息。总的来说,这两个工具在 Linux 系统维护和故障排除中都是非常有用的。