在哪里可以找到特定服务的日志文件

pou*_*uya 6 systemd journalctl

使用sudo journalctl -u {service}我可以看到特定服务的日志。

  1. 如何找到相关的日志文件?
  2. 以编程方式监视日志文件的最佳方法是什么?(我的意思是一个程序基于某些东西出现在日志文件中)

Jde*_*eBP 7

具有 s6、runit、perp、nosh、daemontools-encore 等的系统。这样做服务管理工作。每个主要服务都有一组可以单独监控的单独关联的日志文件,以及分散的日志记录机制。

然而 systemd 并不是这样工作的。任何给定服务都没有单独的“关联日志文件”。没有要监视的此类文件。

所有日志输出都集中到单个中央守护进程 中,systemd-journald并且该守护进程将其写入单个流,所有服务的日志输出都合并到单个中央日志中/{run,var}/log/journal/

选项-ujournalctl后处理过滤器,用于过滤从单个中央日志打印的内容,所有日志条目都标记有(除其他外)相关服务的名称。所有东西都呈扇形散开,然后必须经过过滤才能将其分离回(大约)原来的样子。

systemd 的方式是添加journalctl -f适当的过滤器,或者直接使用 systemd 特定的 API 为其日志编写自己的程序。

进一步阅读