[ 
https://issues.apache.org/jira/browse/LOG4PHP-71?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12745059#action_12745059
 ] 

Christian Grobmeier commented on LOG4PHP-71:
--------------------------------------------

According to PHP documentation, a file is blocked until it is closed. What you 
experienced is the standard behaviour of PHP.

Log4PHP needs to close the file directly after writing. The following solutions 
might be considered:

1) use file_put_content which is analogue to fopen, fwrite, and fclose
2) close the file directly after writing
3) use one of the newer stream classes to enable streaming to the file. BUT a 
file lock must be aquired

We need to check how the performance impacts are with closing the file.

However, I think I would prefer to close the file at first glance.


> Using LoggerAppenderFile logging to the log file in one Apache session blocks 
> every other Apache session that tries to write to the file until the original 
> request has been processed
> --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: LOG4PHP-71
>                 URL: https://issues.apache.org/jira/browse/LOG4PHP-71
>             Project: Log4php
>          Issue Type: Bug
>          Components: Code
>    Affects Versions: 2.0
>         Environment: MAMP, LAMP, WAMP
>            Reporter: Chris Williams
>             Fix For: 2.0
>
>
> Note: We probably have an older version of log4php than what's currently 
> available.
> We were experiencing problems in our application where one session is waiting 
> on another session. This effectively single threads our Apache requests for 
> different clients. We narrowed this down to our use of log4php.
> The code below will open a file for writing but will not close it until the 
> request has been handled:
>       $logger = LoggerManager::getLogger('logger');
>       $logger->debug($message);
> We added the following call and are no longer experiencing the file blocking 
> since it looks like this call closes the file:
>       LoggerManager::shutdown();
> Is this the expected behavior? Should the log file be kept open between usage?

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to