【发布时间】:2021-05-01 14:57:34
【问题描述】:
如何从命令行记录到特定的 systemd 日志命名空间?
使用 Systemd 启动服务时,可以给出
LogNamespace=myNamespace 结合
StandardOutput=journal 作为单元文件中配置的一部分。
要查看此命名空间的输出,只需调用 journalctl --namespace=myNamespace 即可仅查看此命名空间的输出。
使用systemd-cat可以直接从命令行打印到日志中:
echo "Hello Journal!" | systemd-cat
印刷品“Hello Journal!”确实显示在默认(匿名?)命名空间中,通过journalctl 可见。它不在任何命名空间内,并且在使用journalctl --namespace=myNamespace 时不可见。
更具体地说明最初的问题:
在查看journalct -f --namespace=myNamespace 时,如何使从命令行启动的进程的输出(没有 systemd,只是普通二进制)在此视图中可见?
类似echo "Hello Journal!" | systemd-cat --log-namespace=myNamespace
我使用 LogNamespaces 来分隔不同的应用程序日志。如果这不是预期用途,也可以接受以另一种(更好)方式解释如何做到这一点的答案。
【问题讨论】:
标签: unix logging systemd journal