结合 tail &&journalctl

结合 tail &&journalctl

我正在跟踪我自己的应用程序和 postgres 的日志。

tail -f /tmp/myapp.log /var/log/postgresql/postgresql.main.log

我需要包含 pgpool 的日志。以前是syslog,但现在是journalctl。

有没有办法将 tail -f && Journalctl -f 结合在一起?

答案1

你可以使用:

journalctl -u service-name -f

-f,--跟随

仅显示最新的日记条目,并在新条目附加到日记时连续打印它们。

在这里我添加了“服务名称”来区分这个答案和其他答案;您可以替换实际的服务名称而不是文本service-name

答案2

你可以将您的日志条目转发至杂志

systemd-cat tail -f /tmp/myapp.log /var/log/postgresql.log

然后使用journalctl -f...尽管正如马克提到的那样,这将打印所有日记条目。


仅过滤来自这些日志和特定单元的消息的一种方法是使用不同的SYSLOG_IDENTIFIER即编辑单元文件并在该[Service]部分下添加例如

SyslogIdentifier=my_stuff

重新启动设备,然后systemd-cat使用相同的标识符运行

systemd-cat -t my_stuff tail -f /tmp/myapp.log /var/log/postgresql.log

最后仅在日志中查询该特定标识符:

journalctl -f -t my_stuff

答案3

如果你有 bash 可用,你可以使用流程替代作为参数之一tail

tail -f /tmp/myapp.log /var/log/postgresql/postgresql.main.log <(journalctl -f)

答案4

使用日记尾

journaltail --unit pgpool.service /tmp/myapp.log /var/log/postgresql/postgresql.main.log

在 stackoverflow 等人寻找解决方案后,我一小时前刚刚将脚本放在一起。

相关内容