flog (file logger) is a program that reads input from STDIN and writes to a file.
If SIGHUP is received, the file will be reopened, allowing for log rotation [see logrotate(8) on RH.]
The log file will only be reopened if flog detects that rotation has occurred (ie, old file gone or inode changed). flog is extremly small (less than 500 bytes memory footprint.)
Usage: pipeline | flog [-t] logfile # SIGHUP will reopen logfile
-t prepend each line with "YYYYMMDD;HH:MM:SS: "
-T prepend each line with specified date format
Typically flog is used to log STDERR output from a daemon. It's also very useful with Apache. This way you never have to HUP apache itself:
ErrorLog "|/bin/flog /httpd/logs/error_log"
(mydaemon >stdout.file) |& flog [-t] stderr.file
this will redirect daemon's STDOUT to a file called "stdout.file" and STDERR (thru flog) to "stderr.file". (example uses zsh: the best shell! like bash but better)
The -t option causes a timestamp to be prepended to each line.
The -T < format > option causes a timestamp to be prepended to each line with a user specified time format. See strftime(3) for how to specify the format.
What's New in This Release:
· Added -l option to limit file length