aboutsummaryrefslogtreecommitdiffstats
s6-linux-utils: the s6-logwatch program

s6-linux-utils
Software
skarnet.org

The s6-logwatch program

s6-logwatch watches the current file of a logdir, printing it in real time.

Interface

     s6-logwatch [ -m buflen ] logdir
  • s6-logwatch prints logdir/current and watches the file.
  • logdir must be managed by a s6-log instance.
  • When new logs are appended to the current file, s6-logwatch prints them in real-time to stdout.
  • When a rotation happens, s6-logwatch notices, and keeps watching the new current file.
  • s6-logwatch runs forever until killed.

Options

  • -m buflen : accumulate at most buflen bytes into the stdout buffer before flushing it. By default, buflen is 4000.

Bugs

  • s6-logwatch is not entirely reliable because there is an unavoidable race condition when a rotation occurs; it's a hack for humans to keep reading logs across rotations, not a tool to be used in safe programming. When the race condition is triggered, s6-logwatch will be unable to understand what state logdir is in and will exit 101 with an error message.
  • Specific support in the logger program would be needed to avoid this race condition; it would significantly bloat the logger program, so it has not been deemed useful.

Notes

  • s6-logwatch is Linux-specific because it uses the inotify interface.