Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Howto: Using syslog for user created shell script

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.

like image 600
David Parks Avatar asked Jul 11 '11 06:07

David Parks


1 Answers

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.

like image 84
sorpigal Avatar answered Sep 28 '22 06:09

sorpigal