php配置不显示错误日志,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_STRICTPHP版本可移植性建议

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()函数了定制发送的日志。

你可能感兴趣的:(php配置不显示错误日志)