Rotate files while the service is running.
authorIain Patterson <me@iain.cx>
Sat, 11 Jan 2014 11:46:42 +0000 (11:46 +0000)
committerIain Patterson <me@iain.cx>
Sat, 11 Jan 2014 11:46:42 +0000 (11:46 +0000)
commit143238dfe314c16bc90a6807ab0f00220efd34a2
tree2c6704dd52f9f97f74b1013d4deff36efab23ad5
parentb197ffd8aebfd6597466f2f537f0a13d1013263a
Rotate files while the service is running.

If AppRotateOnline is set, set up a pipe between the application's
stdout/stderr and a new thread which reads all input and writes to the
configured output file(s).

If a file breaches the configured AppRotateBytes threshold while the
service is running, close and rotate the file then resume logging to
a new file.

This behaviour is not the default due to the potential for things to go
wrong.  We have to juggle file handles and might hit a read or write
error which causes logging to fail thus losing all output until the
service is restarted, etc etc.

Thanks Doug Watson.
12 files changed:
README.txt
gui.cpp
io.cpp
io.h
messages.mc
nssm.rc
registry.cpp
registry.h
resource.h
service.cpp
service.h
settings.cpp