PHP-记录奇怪的行为
我有两个php文件PHP-记录奇怪的行为,php,logging,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() {
<?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);
}
}
?>
我的文件丢失。[因为我拼写错误],因此require
将抛出致命错误。我正在用log4ppp
将其记录到一个文件中。但不幸的是,日志记录不起作用
我调试了代码。它转到case语句并执行,但未创建日志文件
在我的第二个php文件中,我只是做了如下修改
<?php
$log = Logger::getLogger('myLogger');
$log->info("ok");
include('myPage.php')
?>
记录器中发生了什么?你说它去那里。检查路径和权限。@ AWONS只考虑我的第二种情况。我添加了虚拟记录器。两个文件位于同一位置。权限可能不是问题。您说过,在第二种情况下,代码进入记录器。这意味着那里发生了一些错误。我们看不到它的代码,所以很难说那里发生了什么。尝试一步一步地进行,看看那里发生了什么。@awons我一步一步地调试。在这两种情况下,控件都到达了正确的位置。[我指的是错误处理程序],但记录器仅在第二种情况下工作。这是我描述错误的完整代码。我还将添加我的log4php属性。
<?php
require 'myPageXYZ.php';
?>
<?php
$log = Logger::getLogger('myLogger');
$log->info("ok");
include('myPage.php')
?>
<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>