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を確認すると、つまり/var/log/apache2/error.log、error_logメッセージが表示されません。

これらがerror_logに入力されないのはなぜですか?

4

2 に答える 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

あなたのメッセージはそれらの1つにあるべきです。

于 2013-01-18T09:38:09.443 に答える
0

error.logerror_log.phpページでエラーが発生しない限り、何もログに記録されません。

access.logApacheServerが処理するすべてのイベントをログに記録します

error.logそれがあなたがイベントを記録しない理由です

詳細については、http://httpd.apache.org/docs/2.2/logs.htmlを確認してください。

于 2013-01-18T09:50:59.883 に答える