PHP - 记录奇怪的行为

时间:2016-01-11 09:48:03

标签: php logging

我有两个php文件。

  <?php


register_shutdown_function("shutdownHandler");
require_once ('apache-log4php-2.3.0/src/main/php/Logger.php');
Logger::configure($_SERVER['DOCUMENT_ROOT'].'/front-page/lib/logger.xml');

function shutdownHandler()
{
    $lasterror = error_get_last();
    switch ($lasterror['type'])
    {
        case E_ERROR:
        case E_CORE_ERROR:
        case E_COMPILE_ERROR:
        case E_USER_ERROR:
        case E_RECOVERABLE_ERROR:
        case E_CORE_WARNING:
        case E_COMPILE_WARNING:
        case E_PARSE:
            $error = "[SHUTDOWN] :" . $lasterror['type'] . " | msg:" . 
                        $lasterror['message'] . " | file:" . $lasterror['file'] . " | ln:" . $lasterror['line'];
            $log = Logger::getLogger('myLogger');
            $log->info($error);
    }
}

?>

我在SO上提到了这个错误处理。

我有另一页

<?php
  include('myPage.php')
?>

我修改了php.ini,以便第一个php将被添加到所有php。

我想为我的网页进行错误处理。我刚刚在第二页中添加了以下内容

 <?php
  require 'myPageXYZ.php';
 ?>   

我的文件丢失了。[因为我拼错了]所以require会抛出致命的错误。我将其记录在log4php的文件中。但不幸的是,日志记录无效。

我调试了代码。它转到case语句并执行但不创建日志文件。

我刚刚在我的第二个php文件中修改如下

 <?php
   $log = Logger::getLogger('myLogger');
   $log->info("ok");
   include('myPage.php')
 ?>

IT工作。它还会创建文件并记录okerror statement。所以我猜我的log4php属性并没有错。请让我知道我错过了什么。我错过了两个php文件之间的任何内容吗?像范围或东西。

修改

LOG4PHP xml文件:

<configuration xmlns="http://logging.apache.org/log4php/">
<appender name="myAppender" class="LoggerAppenderFile">
    <param name="file" value="myLog.log" />
</appender>

<appender name="myConsoleAppender" class="LoggerAppenderConsole" />
<logger name="myLogger">
    <level value="DEBUG" />
    <appender_ref ref="myAppender" />
 </logger>
</configuration>

0 个答案:

没有答案