如何打开所有错误和警告并将它们记录到文件中,但要在脚本中设置所有这些(不要更改php.ini中的任何内容) . 我想定义一个文件名,以便记录所有错误和警告 .
使用以下代码:
ini_set("log_errors", 1); ini_set("error_log", "/tmp/php-error.log"); error_log( "Hello, errors!" );
然后看文件:
tail -f /tmp/php-error.log
或者如2008年this blog entry中所述更新 php.ini .
php.ini
看到
例
error_log("You messed up!", 3, "/var/tmp/my-errors.log");
每当出现错误或警告或需要记录的任何内容时,您都可以customize error handling with your own error handlers为您调用此函数 . 有关其他信息,请参阅Chapter Error Handling in the PHP Manual
只需将这些代码放在PHP /索引文件的顶部:
error_reporting(E_ALL); // Error engine - always ON! ini_set('display_errors', TRUE); // Error display - OFF in production env or real server ini_set('log_errors', TRUE); // Error logging ini_set('error_log', 'your/path/to/errors.log'); // Logging file ini_set('log_errors_max_len', 1024); // Logging file size
在 .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>
附:这适用于Apache类型的服务器 .
看看php.ini中的log_errors配置选项 . 它似乎只是你想要的 . 我认为您也可以使用error_log选项来设置自己的日志文件 .
当 log_errors 指令设置为 On 时,PHP报告的任何错误都将记录到服务器日志或 error_log 指定的文件中 . 如果需要,您也可以使用ini_set设置这些选项 .
log_errors
On
error_log
(请注意,如果启用此选项,则应在php.ini中禁用 display_errors )
display_errors
这是我个人的短期功能
# 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); }
此外,您需要“AllowOverride选项”指令才能使用此功能 . (Apache 2.2.15)
7 回答
使用以下代码:
然后看文件:
或者如2008年this blog entry中所述更新
php.ini
.看到
例
每当出现错误或警告或需要记录的任何内容时,您都可以customize error handling with your own error handlers为您调用此函数 . 有关其他信息,请参阅Chapter Error Handling in the PHP Manual
只需将这些代码放在PHP /索引文件的顶部:
在 .htaccess 中添加此代码(作为 php.ini / ini_set 函数的替代):
附:这适用于Apache类型的服务器 .
看看php.ini中的log_errors配置选项 . 它似乎只是你想要的 . 我认为您也可以使用error_log选项来设置自己的日志文件 .
当
log_errors
指令设置为On
时,PHP报告的任何错误都将记录到服务器日志或error_log
指定的文件中 . 如果需要,您也可以使用ini_set设置这些选项 .(请注意,如果启用此选项,则应在php.ini中禁用
display_errors
)这是我个人的短期功能
此外,您需要“AllowOverride选项”指令才能使用此功能 . (Apache 2.2.15)