Our environment : Linux
I would like to make a change in
the iocLogServer.c and in particular to always force the
close and open of the log file when the IOC log server
catches a SIGHUP.
Currently it checks the file name
is not the same one to perform the action :
L 908 if (strcmp(ioc_log_file_name,
pserver->outfile) == 0)
Why is this a problem?
We are using logrotate in our
system. We tried several scenarios but no way to make it
work properly without using a full script. I described
the different case we tried.
Simple log rotate configuration (log file being
moved, compressed and new one with the same name is
created). The iocLogServer still points to the log file
being moved and SIGHUP does not affect (because of the
check no change on this variable). As a consequence the
new file with the same name is always empty.
Then I tried copytruncate, copy with a command
to empty file : here the problem was the size always
grewing until the file limit, the iocLogServer was
always dumping its buffer (which was non human readable
We also explore this
EPICS_IOC_LOG_FILE_COMMAND but without success, still
the same issue as we want to keep the same path.
Also we didn’t want to restart the
iocLogServer each time we logrotate...
So the simplest solution I came up
with was to remove this check. If this check is really
needed, a flag can be added at start up of the IOC log
server to see if one wants to force the update
So thanks for your
comments/feedback and I would appreciate if IOCLog gurus
can give their feedback on that issue...I may have miss
something here on the reason of the check and request