0

我有以下基本代码:

<?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 ie 时/var/log/apache2/error.log,我看不到任何一个 error_log 消息。

为什么这些没有进入error_log?

4

2 回答 2

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.

现在它取决于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

您的消息应该在其中之一中。

于 2013-01-18T09:38:09.443 回答
0

error.log除非 error_log.php 页面出错,否则不会记录任何内容。

access.log记录 Apache 服务器处理的所有事件

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

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

于 2013-01-18T09:50:59.883 回答