in reply to Merged lines with Apache::LogFile-based log handler

Looking at the source for Apache::LogFile, it doesn't appear to do any kind of locking to prevent this problem. This isn't that uncommon for logfiles, where you have to decide between using some sort of locking to make sure you don't get this situation, or just accepting that this can happen once in a while and not locking, because holding the lock will slow the application down as other processes wait to lock the same file.

In this situation, one possibility would be to make sure the logfile isn't being shared by multiple applications, perhaps by including the process id in the logfile name, and opening a new log if the current process id does not match the one in the opened log file. The best solution for this though is probably to change how you are logging that information, either logging to an external logging process that can deal with the locking and concurrency (like syslog) or logging to a database.


We're not surrounded, we're in a target-rich environment!
  • Comment on Re: Merged lines with Apache::LogFile-based log handler