每Journald 手册页。此命令stdout/stderr
只能捕获正在运行的服务。然而,有时我们希望将文本日志捕获到日志中,例如nginx access.log
。
是否可以使用命令捕获任何文本文件,例如tail -f
into Journald with systemd tools
?
答案1
您可以使用此 SF 问答中讨论的方法来完成此任务,标题为:如何从命令行向 systemd 日志发送消息?。该方法使用工具systemd-cat
其功能类似于logger
.
$ echo 'hello' | systemd-cat -p info
$ echo 'hello' | systemd-cat -p warning
$ echo 'hello' | systemd-cat -p emerg
消息将在日志中显示如下:
Feb 07 13:38:33 localhost.localdomain cat[15162]: hello
您可以控制日志中显示的标识符详细信息,如下所示:
$ echo 'hello' | systemd-cat -t someapp -p emerg
导致这种类型的日志记录:
Feb 07 13:48:56 localhost.localdomain someapp[15278]: hello
笔记:我仍然可能会使用旨在捕获 Nginx 日志的实际 systemd 单元文件来实现此功能。