foreach $log (@logfiles) {
rename($log,$log.".tmp");
ProcessLogfile($log.".tmp");
}
foreach $log (@logfiles) {
del($log.".tmp");
};
this way, everything that is logging, will keep on logging into it's open filedescriptor (ie - the new data will go into .tmp file).
The problem is - how long are your external logging processing keeping their logfile descriptors open, the key part being - are they keeping their descriptors opened indefinitely? Then you're out of luck and can't really do what you're trying to achieve.
If their logging method is
open(LOG,">>logfile");
print LOG "memo";
close LOG;
then the method described above would work OK. |