ubuntu查看systemctl服务的实时日志

要查看systemd服务的实时日志,可以使用journalctl命令。journalctl命令允许您查看systemd日志系统中的各种日志条目,包括服务的日志。以下是如何使用journalctl来查看systemd服务的实时日志:

查看特定服务的实时日志:

使用以下命令来查看特定服务(例如nginx)的实时日志:

sudo journalctl -u nginx -f

查看所有服务的实时日志:

sudo journalctl -f

查看特定时间范围内的日志:

sudo journalctl -u nginx --since "1 hour ago"

可以使用 --since 标志加上一些时间描述,如 yesterday, 1 hour ago, 2023-08-22, 等来限制日志的时间范围。

按级别过滤日志:

sudo journalctl -u nginx -p warning -f

以上命令中的 -u-p 标志是用来过滤特定服务和日志级别的,您可以根据实际情况进行调整。使用journalctl命令时,还可以通过其他选项来进一步定制您想要的日志显示方式,您可以通过 man journalctl 命令来查看所有的选项和用法说明。

journalctl介绍:

在Ubuntu中,systemd服务的日志通常存储在journald日志系统中,而不是单独的文件夹。journald是一个日志管理系统,将日志存储在二进制格式中,并可以通过journalctl命令来检索和查看这些日志。

默认情况下,journald将日志存储在/var/log/journal目录下,分为系统日志和用户日志。这个目录包含了所有systemd单元(包括服务)的日志。

具体来说,系统级别的日志存储在/var/log/journal/<machine-id>目录中,其中<machine-id>是机器的唯一标识符。您可以使用以下命令查看系统级别的日志:

如果需要禁用日志服务,则需要在*.service中配置以下内容:

[Service]
StandardOutput=null
StandardError=null

上述配置将标准输出和标准错误输出都定向到空设备,从而阻止将日志输出到journald。