从命令行向syslog写入日志

如何从命令行写入日志文件/var/log/syslog
3个回答

使用logger命令。
logger Some message to write

有几个可选项,包括:
-i Log the process ID in each line
-f Log the contents of a specified file
-n Write to the specified remote syslog server
-p Specify a priority
-t Tag the line with a specified tag

有关该工具的更多信息,请参阅 man 1 logger


1有关更详细的logger示例以及通过netcat或shell重定向进行远程记录,请参阅:https://www.safaribooksonline.com/library/view/bash-cookbook/0596526784/ch15s14.html - user13975

或者,你可以用Python将日志写入syslog
python -c 'import syslog; syslog.syslog("Hello World")'

3诚实的问题:相比于“logger”命令,使用Python会有哪些好处呢? - Drew Noakes
2@DrewNoakes 如果你从命令行中运行一个 Python 脚本,使用标准库总是比依赖 subprocess 和调用logger更好。我已经支持你了,只是提供一个替代方案。 - Sylvain Pineau
感谢你的澄清。我猜这对于所有的编程语言都是适用的。请接受我的支持。 - Drew Noakes
只是一个想法 - 加载一个庞大的环境来将内容记录到文件中并不像使用一个简单的工具(比如日志记录器)那样理想,尤其是如果你想要将其脚本化。 - pdwalker

作为一名开发者,我很少有时间仔细研究“man”页面,所以简而言之:
logger -p local0.notice -t ${0##*/}[$$] Hello world

中间的胡言乱语将被翻译为调用程序。因此,如果您检查syslog底部,您将看到类似于以下内容:

May 07 08:27:14 ip-10-1-11-166 -bash[42108]: Hello world