Answers:
使用以下代码:
ini_set("log_errors", 1);
ini_set("error_log", "/tmp/php-error.log");
error_log( "Hello, errors!" );
然后观看文件:
tail -f /tmp/php-error.log
或php.ini
按照此博客条目(自2008年)中的描述进行更新。
php_flag log_errors on php_value error_log /home/path/public_html/domain/PHP_errors.log
。见perishablepress.com/...
tmp/php-error.log
位置?
看到
error_log
—在某处发送错误消息例
error_log("You messed up!", 3, "/var/tmp/my-errors.log");
您可以使用自己的错误处理程序来自定义错误处理,以便在发生错误或警告或需要记录的任何内容时为您调用此函数。有关更多信息,请参考PHP手册中的“错误处理 ”一章。
只需将这些代码放在您的PHP / index文件的顶部:
error_reporting(E_ALL); // Error/Exception engine, always use E_ALL
ini_set('ignore_repeated_errors', TRUE); // always use TRUE
ini_set('display_errors', FALSE); // Error/Exception display, use FALSE only in production environment or real server. Use TRUE in development environment
ini_set('log_errors', TRUE); // Error/Exception file logging engine.
ini_set('error_log', 'your/path/to/errors.log'); // Logging file path
display_errors
绝对不要在实时生产服务器上打开该指令-该指令专门用于输出给用户,并且对日志记录没有影响。php.net/manual/en/...
将此代码添加到.htaccess中(作为php.ini / ini_set函数的替代方法):
<IfModule mod_php5.c>
php_flag log_errors on
php_value error_log ./path_to_MY_PHP_ERRORS.log
# php_flag display_errors on
</IfModule>
*注释:这是针对Apache型服务器的,不适用于Nginx或其他服务器。
那是我的个人短处
# 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);
}
看一下log_errors
php.ini 中的配置选项。它似乎可以满足您的要求。我认为您也可以使用该error_log
选项来设置自己的日志文件。
当log_errors
伪指令设置On
为时,PHP报告的任何错误都将记录到服务器日志或用指定的文件中error_log
。ini_set
如果需要,您也可以设置这些选项。
(请注意,display_errors
如果启用此选项,则应在php.ini中禁用)
display_errors
如果启用,为什么应该禁用它log_errors
?我认为这没有道理。:)
ini_set
仅在执行该代码时才起作用。对于具有解析错误的代码没有用,因为该错误将在代码执行之前发生。而是将这些更改写入php.ini。