Sirius
Sirius

目录

目录

Linux下向系统写日志, 写journalctl可以看的日志

目录

在 Linux 系统中,您可以使用 systemd-journald 来收集和存储日志数据,并通过 journalctl 命令来查看这些日志。您可以通过标准输入将输出写入 systemd-journald,然后使用 journalctl -f 或其他过滤器命令来查看日志。 

将日志写入 journald
有很多方法可以将日志写入 journald,最常见的是通过 syslog 接口或直接使用 systemd-cat 命令。 

  1. 使用标准输入(例如,通过管道)

    • 在 Bash 脚本中,可以将命令的输出通过管道发送到 systemd-cat 命令,systemd-cat 会将输出写入 systemd-journald

    • 例如,要记录一个脚本的输出:

      echo "这是我的脚本输出日志" | systemd-cat
    • 您还可以使用 logger 命令将消息写入 syslog,然后由 systemd-journald 捕获。

      logger "这是一个使用 logger 命令写入的日志"
  2. 使用 systemd-journald 的标准输出接口

    • systemd-journald 可以通过标准的 C 库 syslog(3) 接口来收集系统日志。许多应用程序和系统工具都利用这个接口来发送日志。 

使用 journalctl 查看日志
一旦日志被写入 journald,就可以使用 journalctl 来查看它们。 

  • 实时查看日志:

    journalctl -f

    这个命令会显示最新的日志,并在新日志出现时继续输出。

  • 查看特定服务的日志:

    journalctl -u <service_name>.service

    例如,要查看 nginx 服务的日志:

    journalctl -u nginx.service
  • 过滤日志:
    journalctl 提供了丰富的过滤选项,可以根据时间、优先级、单元等进行过滤。

    • 根据优先级过滤:

      journalctl -p err

      这将只显示错误级别的日志。

    • 查看特定时间的日志:

      journalctl --since "2025-10-10 10:00:00" --until "2025-10-10 11:00:00"

      这将显示在指定时间段内的日志。

    • 查看根据字符筛选的日志:

      journalctl -b --user | grep -i kwallet

相关内容

Linux下 Bash 向内核写日志, 写dmesg可以看的日志
更改sudo的editor
用obsidian管理hugo文章小技巧