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! |
---|
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|