Howto: Using syslog for user created shell script

David Parks picture David Parks · Jul 11, 2011 · Viewed 7k times · Source

Information abound about syslog, but I can't find anything very concise for my interest.

I have a user-created bash script that should log various debug, info, and error messages. I'd like to use syslog. This in Ubuntu Server distribution.

I'm looking for a quick overview only.

  • I see many files in /etc/logrotate.d that don't get discussed in any man pages that confuse me.
  • Should I be logging as user? local0-7?
  • Do I need to do something to configure this before I use these in a logger command?
  • How should I define what logs get created? Or is this already done?

With those questions answered I should be able to glean the details from the man pages.

Answer

sorpigal picture sorpigal · Jul 11, 2011

You want the logger(1) utility, available in the bsdutils package.

From the man page:

     logger - a shell command interface to the syslog(3) system log module

There's nothing that's essential to configure, just pass the switches you want. E.g.

logger -p local3.info -t myprogram "What's up, doc?"

You can now inspect wherever local3.info messages go and you will see something like this:

Jul 11 12:46:35 hostname myprogram: What's up, doc?

You only need to worry about logrotate if you need something fancier than this.

As for what log facility to use, I would use daemon for daemon messages and local for most other things. You should consult syslog(3) for the purposes of the different facilities.