关于PHP中的错误信息

Posted by jintang on 2013-05-03

开发中,显示错误信息是必须的,有助于定位问题,也是找到问题最直接的方式。

但是在生产环境中,就必须屏蔽错误信息的输出。

开启与关闭

php.ini中配置:

1
2
3
4
5
6

display_errors = on|off
# 错误信息的开启与关闭

log_errors = /path/to/error.log
# 错误日志的输出

错误等级

php.ini中配置:

1
2
error_reporting = E_ALL & ~E_NOTICE
# 错误信息的级别

使用函数的方式设置:

1
2
3
4
5
<?php

ini_set("error_reporting", "E_ALL");

error_reporting("E_ALL & ~E_STRICT");

错误信息的等级列表

1
2
3
4
5
6
7
8
9
10
11
12
13
1 E_ERROR 
2 E_WARNING
4 E_PARSE
8 E_NOTICE
16 E_CORE_ERROR
32 E_CORE_WARNING
64 E_COMPILE_ERROR
128 E_COMPILE_WARNING
256 E_USER_ERROR
512 E_USER_WARNING
1024 E_USER_NOTICE
2047 E_ALL
2048 E_STRICT

等级可以通过位运算

1
2
3
4
5
# 显示error和warning
error_reporting = E_ERROR | E_WARNING

# 显示除E_STRICT以外的所有错误等级信息
error_reporting = E_ALL & ~E_STRICT