Till Heimann created LOG4PHP-187:
------------------------------------

             Summary: Logging does not work in shutdown function
                 Key: LOG4PHP-187
                 URL: https://issues.apache.org/jira/browse/LOG4PHP-187
             Project: Log4php
          Issue Type: Bug
    Affects Versions: 2.2.1
         Environment: Linux x86_64 GNU/Linux with PHP 5.4.14,
Windows 7 with PHP 5.4.6
            Reporter: Till Heimann


I register a shutdown function in php. In this shutdown function I try to log 
something unsing Log4php.

actual:
No Log entries for any log call within the shutdown function.

expected:
Log entries from the shutdown function.


Exemple Code, config file and shell output:
****** log4php_conf.xml *******
<?xml version="1.0" encoding="UTF-8"?>
<configuration xmlns="http://logging.apache.org/log4php/";>
        <appender name="myAppender" class="LoggerAppenderFile">
                <layout class="LoggerLayoutTTCC" />
                <param name="file" value="test.log" />
        </appender>
        <root>
                <level value="TRACE" />
                <appender_ref ref="myAppender" />
        </root>
</configuration>

---------------------------------------------------------------------

******* test.php *******
<?php

require_once './log4php/Logger.php';

Logger::configure('./log4php_conf.xml');

$logger = Logger::getLogger("ShutdownTest");

main();


function main() {
        global $logger;
        $logger->trace("function main() called");
        $logger->info("*** start shutdown test ***");
        register_shutdown_function('shutdown');
        print("\ndo something ... ");
        sleep(1);
        print("done\n");
}


function shutdown(){
        global $logger;
        $logger->trace("function shutdown() called");
        // do some stuff like logging errors ...
        $logger->info("*** exiting shutdown test ***");
        print("This line is printed out.\n");
}
?>

---------------------------------------------------------------------

Linux output:
-bash-3.2$ php test.php

do something ... done
This line is printed out.
-bash-3.2$ cat test.log
Tue Sep  4 14:40:46 2012,948 [29482] TRACE ShutdownTest - function main() called
Tue Sep  4 14:40:46 2012,952 [29482] INFO ShutdownTest - *** start shutdown 
test ***
-bash-3.2$ php --version
PHP 5.2.14 (cli) (built: Aug 27 2010 16:44:17)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies

---------------------------------------------------------------------

Windows output:
PS C:\test_log4php> php .\test.php

do something ... done
This line is printed out.
PS C:\test_log4php> cat .\test.log
09/04/12 14:13:05,118 [4844] TRACE ShutdownTest - function main() called
09/04/12 14:13:05,120 [4844] INFO ShutdownTest - *** start shutdown test ***
PS C:\test_log4php> php --version
PHP 5.4.6 (cli) (built: Aug 15 2012 21:16:03)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies
PS C:\test_log4php>


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to