设置错误显示等级
下面列举一些错误报告级别:
值 常量 说明
1 E_ERROR 报告导致脚本终止运行的致命错误
2 E_WARNING 报告运行时的警告类错误(脚本不会终止运行)
4 E_PARSE 报告编译时的语法解析错误
8 E_NOTICE 报告通知类错误,脚本可能会产生错误
32767 E_ALL 报告所有的可能出现的错误(不同的PHP版本,常量E_ALL的值也可能不同)
<?php
//禁用错误报告
error_reporting(0);
//报告运行时错误
error_reporting(E_ERROR | E_WARNING | E_PARSE);
//报告所有错误
error_reporting(E_ALL);
?>
2、ini_set(“display_errors”, “on”)
设置让php显示错误,在关于错误显示控制中,其优先级最高
注意:配置文件php.ini中display_errors的默认值为On,代表显示错误提示,如果设置为Off,就会关闭所有的错误提示。
使用 error_reporting(0) 或者在函数前面加 @,可以抑制错误输出,以防止错误消息泄露敏感信息。
3、ini_set('error_log', dirname(__FILE__) . '/error_log.txt');
设置错误日志文件
4、注册错误日志文件
//注册错误日志处理函数
/**
* 错误处理函数
* @param int $errno
* @param string $errstr
* @param string $errfile
* @param int $errline
*/
function errHandler($errno,$errstr,$errfile,$errline){
$msg = "错误代码:[{$errno}] {$errstr}\r\n";
$msg .= "错误位置:{$errline} 文件 {$errfile}\r\n";
$msg .= "PHP版本 ".PHP_VERSION."(".PHP_OS.")\r\n";
LogCat::writeFileLog('errHandler.log', '错误日志', $msg);
}
set_error_handler("errHandler",E_ALL|E_STRICT);
5、针对第3点设置的error_log的路径,可以使用函数 error_log操作记录日志或者发送日志邮件
error_log
(PHP 4, PHP 5, PHP 7)
error_log — 发送错误信息到某个地方
说明
$message
[,
int $message_type
= 0 [,
string $destination
[,
string $extra_headers
]]] )
把错误信息发送到 web 服务器的错误日志,或者到一个文件里。
参数
-
应该被记录的错误信息。
-
设置错误应该发送到何处。可能的信息类型有以下几个:
error_log() 日志类型 0 message
发送到 PHP 的系统日志,使用 操作系统的日志机制或者一个文件,取决于 error_log 指令设置了什么。 这是个默认的选项。1 message
发送到参数destination
设置的邮件地址。 第四个参数extra_headers
只有在这个类型里才会被用到。2 不再是一个选项。 3 message
被发送到位置为destination
的文件里。 字符message
不会默认被当做新的一行。4 message
直接发送到 SAPI 的日志处理程序中。 -
目标。它的含义描述于以上,由
message_type
参数所决定。 -
额外的头。当
message_type
设置为 1 的时候使用。 该信息类型使用了 mail() 的同一个内置函数。
message
message_type
destination
extra_headers
返回值
成功时返回 TRUE
, 或者在失败时返回 FALSE
。