PHP的错误日志配置

来源:互联网 发布:百战天下进阶数据 编辑:程序博客网 时间:2024/05/21 07:50

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

级别描述E_ALL所有错误和警告E_COMPLIE_ERROR致命的编译时错误E_COMPLIE_WARNING编译时警告E_CORE_ERRORE_CORE_ WARNINGE_DEPRECATED未来版本中将移除的特性的警告E_ERROR运行时错误E_NOTICE一般提示信息E_PARSE编译时解析错误E_RECOVERABLE_ERROPR        几乎致命的错误 PHP5.2引入E_STRICTPHP版本可移植性建议E_USER_ DEPRECATED用户使用计划在PHP未来版本中移除的特性时的警告E_USER_NOTICE用户导致的一般信息E_USER_WARNING用户导致的警告E_WARNING运行时警告

例子:

# 在开发阶段,报告所有错误,将来版本E_ALL可能并不包含E_STRICTerror_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 = 1024ignore_repeated_errors = Offignore_repeated_source = Off;内存泄露report_memleaks = On; This setting is on by default.;report_zend_debug = 0track_errors = Off;xmlrpc_errors = 0;xmlrpc_error_number = 0html_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()函数了定制发送的日志。

0 0
原创粉丝点击