hi Andres,

Added separate log feature. Write actions are written to container standard
> output. SEC logs are written to `/app/logs/sec.log`. To manage SEC logs
> then mount directory to host system `-v logs:/app/logs`. Probably log
> rotation can be done on the host machine side.
>

In order to properly rotate SEC logs, one needs to deliver USR2 signal to
SEC process during log rotation which forces the process to create a new
log file. But unfortunately the container doesn't seem to have logrotate
installed :(

For rotating the log on host machine, one needs to get SEC process ID from
container which normally requires --pid command line option (or some
scripting). However, there is also another approach -- since rsyslog starts
SEC with hup.signal="USR2" option, rsyslog delivers USR2 signal to SEC
process when rsyslog receives HUP during its own log rotation. On the other
hand, your container starts rsyslog with ENTRYPOINT directive which assigns
pid 1 to it. Therefore, you can execute the following command on host
machine when SEC log file is rotated:
docker exec <containerid> kill -1 1

I would personally handle log rotation inside the container, though, in
order to avoid creating additional dependencies on host machine. If you
don't want to install logrotate (or some other package) into container, you
can also configure SEC to rotate its own log with 'sigemul' action. For
example:

type=Calendar
time=0 0 * * *
desc=rotate our own log at midnight
action=lcall %o -> ( sub { rename("/app/logs/sec.log",
"/app/logs/sec.log.old") } ); \
           sigemul USR2

Hope this helps,
risto
_______________________________________________
Simple-evcorr-users mailing list
Simple-evcorr-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/simple-evcorr-users

Reply via email to