I almost always use the syslog service to do my logging. Be it in Perl (using
Sys::Syslog, C, (using
syslog(3)), or in the shell (using
logger(1)). If not, I write to
stderr.
I never buildin log mangling/redirection in my program. It's up to the user or admin to determine what to do. About the only option I add is the choice of facility (of which there are, unfortunally, way too few). I dislike all those pesky little programs, each having their own ideas on how to log, creating a twisty little maze of logfiles, all different. Large applications doing tons of logging may create their own log files - think Oracle. For the rest, I'd like to control what is logged (and where) in a central place: /etc/syslog.conf.