PHP的错误日志配置

1 配置指令
1) 设置错误报告级别
error_reporting指令确定报告的级别,共有16个不同的级别。

级别				描述
E_ALL				所有错误和警告
E_COMPLIE_ERROR			致命的编译时错误
E_COMPLIE_WARNING		编译时警告
E_CORE_ERROR				
E_CORE_ WARNING

E_DEPRECATED			未来版本中将移除的特性的警告

E_ERROR				运行时错误
E_NOTICE			一般提示信息
E_PARSE				编译时解析错误
E_RECOVERABLE_ERROPR	        几乎致命的错误 PHP5.2引入
E_STRICT			PHP版本可移植性建议
E_USER_ DEPRECATED		用户使用计划在PHP未来版本中移除的特性时的警告
E_USER_NOTICE			用户导致的一般信息
E_USER_WARNING			用户导致的警告
E_WARNING			运行时警告

例子:

# 在开发阶段,报告所有错误,将来版本E_ALL可能并不包含E_STRICT
error_reporting = E_ALL & E_STRICT
# 只考虑致命的运行时错误、解析错误和核心错误
error_reporting = E_ERROR | E_PARSE | E_CORE_ERROR
# 希望报告除了E_USER_WARNING级之外的所有错误
error_reporting = E_ALL & ~E_USER_WARNING

2 在浏览器上显示错误
启用display_errors时,将显示满足error_reporting所定义规则的所有错误。一般在开始测试期间启用此命令。
注意:PHP5.2中引入了一个名为error_get_last()的函数。它返回一个关联数组,包含最后出现的错误的类型、消息、文件以及行号。
3 显示启动错误
启用display_startup_errors指令会显示PHP引擎初始化时遇到的所有错误。
4 记录错误
是否记录错误由log_errors指令规定,而error_log指定错误记录的位置
5 标识日志文件
错误可以发送给系统日志后台程序,或者送往error_log指令指定的文件。
6 设置日志行的最大长度
log_errors_max_len指令设置每个日志项的最大长度,默认1024字节。设置为0表示不指定最大长度。
7 忽略重复的错误
ignore_repeated_errors
8 忽略相同位置发生的错误
ignore_repeated_source
9 在变量中存储最近发生的错误
启用track_errors指令会使PHP在变量$php_errormsg中存储最近发生的错误消息。

关于更多更详细内容,可以参考:http://cn2.php.net/manual/zh/errorfunc.configuration.php

注意:log_errors决定了是否记录PHP日志,但是记录的位置是由error_log决定的,默认设置是空的,这样PHP的错误日志将发送到Web服务器(如果该配置没有设置,则错误信息会被发送到 SAPI 错误记录器),由Web服务器记录这些日志,但是也可以指定一个文件给它,让它记录到这个文件去,或者设置为syslog让其交给系统处理。不过,在使用FastCGI的PHP中,错误并没有被Web服务器记录。在PHP作为Apache模块的测试中,PHP的错误日志的确记录到了Apache的error_log中。

PHP配置例子:

; 错误报告级别
error_reporting = E_ALL & ~E_DEPRECATED
; 是否显示错误
display_errors = Off
; 是否显示启动错误
display_startup_errors = Off
; 是否启用错误日志记录
log_errors = On
; 日志记录最大长度
log_errors_max_len = 1024

ignore_repeated_errors = Off
ignore_repeated_source = Off

;内存泄露
report_memleaks = On

; This setting is on by default.
;report_zend_debug = 0

track_errors = Off

;xmlrpc_errors = 0
;xmlrpc_error_number = 0

html_errors = Off

;docref_root = "/phpmanual/"
;docref_ext = .html

;error_prepend_string = ""
;error_append_string = ""
;error_log = php_errors.log

如果PHP的配置指令error_log设置为syslog,这表示把日志发送到syslog来处理,如果是这种方式,PHP还提供了openlog()、close-log()和syslog()函数了定制发送的日志。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值