How can I write an entry into /var/log/syslog
from the command line?
3 Answers
Use the logger
command.
logger Some message to write
There are several options available, including:
-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
See man 1 logger
for more information on the tool.
-
1For a more detailed
logger
example, and for remote logging vianetcat
or shell redirection, see: safaribooksonline.com/library/view/bash-cookbook/0596526784/…– user13975Jan 16, 2018 at 15:19
Alternatively, you can write to syslog
from python:
python -c 'import syslog; syslog.syslog("Hello World")'
-
3Honest question: what would be the benefits of using Python for this over the
logger
command? Oct 30, 2014 at 11:44 -
2@DrewNoakes If you're running a - python - script from the command line, using the standard library is always better than relying on subprocess and call
logger
. You already have my vote, I'm just mentioning an alternative. Oct 30, 2014 at 11:51 -
Thanks for the clarification. I guess this is true for all programming languages. Have a vote on me. Oct 30, 2014 at 11:54
-
just a thought - loading a heavy environment to log something to a file is not as ideal as using a simple tool like logger, especially if you want want to script it.– pdwalkerApr 13, 2021 at 15:44
As a dev, I rarely have time to closely study man
pages, so TLDR:
logger -p local0.notice -t ${0##*/}[$$] Hello world
The gibberish in the middle will translate to the calling program. So if you check the bottom of syslog you'll see something like:
May 07 08:27:14 ip-10-1-11-166 -bash[42108]: Hello world