error_log无法按预期工作

时间:2013-01-18 09:30:35

标签: php error-handling error-logging error-log

我有以下基本代码:

<?php

    //http://localhost/error_log.php
    echo "write to the error_log";
    error_log("error_log entry");
    //error_log("error_log entry",0);

?>

当我导航到此页面时,我在浏览器中看到write to the error_log。它甚至出现在access_log /var/log/apache2/access.log

[my ip here] - - [18/Jan/2013:09:18:54 +0000] "GET /error_log.php HTTP/1.1" 200 314 "-" "Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11"

但是当我检查error_log即/var/log/apache2/error.log时,我没有看到任何error_log消息。

为什么这些没有输入error_log?

2 个答案:

答案 0 :(得分:2)

您在没有第二个参数的情况下调用它,这意味着默认值为0

0   message is sent to PHP's system logger, using the Operating System's system logging mechanism or a file, depending on what the error_log configuration directive is set to. This is the default option.

现在它取决于configuration of error_log

如果这里不是“stderr”,php将不会登录到apache错误日志。

它接缝为此php的“syslog”,将您的日志消息发送到syslog

现在取决于你rsyslog.d的配置方式。

但请看下面的日志

tail /var/log/syslog
tail /var/log/messages
tail /var/log/php
tail /var/log/php.log

你的消息应该在其中一个。

答案 1 :(得分:0)

除非error_log.php页面出错,否则

error.log不会记录任何内容。

access.log隐藏了Apache Server处理的所有事件

这就是您的error.log未记录事件的原因

检查http://httpd.apache.org/docs/2.2/logs.html了解更多信息