関数 - php.ini error_log




エラーと警告をファイルに記録する方法は? (5)

php.iniのlog_errors設定オプションを見てください。 あなたがしたいことだけをするようです。 私はあなた自身のロギングファイルを設定するのにerror_logオプションを使うこともできると思います。

log_errorsディレクティブがOnに設定されている場合、PHPによって報告されたエラーは、サーバーログまたはerror_log指定されたファイルに記録されます。 必要に応じて、これらのオプションをini_set設定することもできます。

(このオプションが有効な場合は、php.iniでdisplay_errorsを無効にする必要があります)

すべてのエラーと警告をオンにしてそれらをファイルに記録する方法(ただし、php.iniの内容は変更しないでください)。 私はファイル名を定義し、すべてのエラーと警告がログに記録されるようにしたい。


このコードを.htaccessに追加する( php.ini / ini_set関数の代わりに):

<IfModule mod_php5.c>
php_flag log_errors on 
php_value error_log ./path_to_MY_PHP_ERRORS.log
</IfModule>

psこれはApacheタイプのサーバー用です。


さらに、これには "AllowOverride Options"ディレクティブが必要です。 (Apache 2.2.15)


それは私の個人的な短い機能です

# logging
/*
[2017-03-20 3:35:43] [INFO] [file.php] Here we are
[2017-03-20 3:35:43] [ERROR] [file.php] Not good
[2017-03-20 3:35:43] [DEBUG] [file.php] Regex empty

mylog ('hallo') -> INFO
mylog ('fail', 'e') -> ERROR
mylog ('next', 'd') -> DEBUG
mylog ('next', 'd', 'debug.log') -> DEBUG file debug.log
*/
function mylog($text, $level='i', $file='logs') {
    switch (strtolower($level)) {
        case 'e':
        case 'error':
            $level='ERROR';
            break;
        case 'i':
        case 'info':
            $level='INFO';
            break;
        case 'd':
        case 'debug':
            $level='DEBUG';
            break;
        default:
            $level='INFO';
    }
    error_log(date("[Y-m-d H:i:s]")."\t[".$level."]\t[".basename(__FILE__)."]\t".$text."\n", 3, $file);
}







error-handling