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!

In reply to Re: Merged lines with Apache::LogFile-based log handler by jasonk
in thread Merged lines with Apache::LogFile-based log handler by bronto

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.