我有以下基本代码:
<?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?
答案 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
不会记录任何内容。
access.log
隐藏了Apache Server处理的所有事件
这就是您的error.log
未记录事件的原因