51

How can I write an entry into /var/log/syslog from the command line?

3 Answers 3

60

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.

1
14

Alternatively, you can write to syslog from python:

python -c 'import syslog; syslog.syslog("Hello World")'
4
  • 3
    Honest 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.
    – pdwalker
    Apr 13, 2021 at 15:44
6

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

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .