PHP Error 和 Logging 函数
Error
和Logging
函数为用户提供了完善的错误处理与日志记录机制。
Error
函数支持自定义错误处理规则,可灵活调整错误记录方式,满足不同场景下的异常管理需求。
Logging
函数支持用户对应用程序进行日志记录,包括电子邮件、系统日志以及其他指定设备,确保系统运行状态的全方位监控。
PHP Error 和 Logging 配置
Error
函数受php.ini
配置文件影响,错误和日志配置选项:
参数 | 默认值 | 描述 | 可修改范围 |
---|---|---|---|
error_reporting | NULL | 设置 PHP 的报错级别并返回当前级别(数字或常量)。 | PHP_INI_ALL |
display_errors | "1" |
该选项设置是否将错误信息作为输出的一部分显示到屏幕,或者对用户隐藏而不显示。
注意: 该特性不要在上线生产环境中使用 (在开发测试过程中使用) |
PHP_INI_ALL |
display_startup_errors | "0" | 即使display_errors 设置为开启, PHP 启动过程中的错误信息也不会被显示。强烈建议除了调试目的以外,将display_startup_errors 设置为关闭。 |
PHP_INI_ALL |
log_errors | "0" | 设置是否将脚本运行的错误信息记录到服务器错误日志或者error_log 之中。注意,这是与服务器相关的特定配置项。 |
PHP_INI_ALL |
log_errors_max_len | "1024" | 设置log_errors 的最大字节数. 在error_log 会添加有关错误源的信息。默认值为 1024,如果设置为 0 表示不限长度。该长度设置对记录的错误,显示的错误,以及$php_errormsg 都会有限制作用。 |
PHP_INI_ALL |
ignore_repeated_errors | "0" | 不记录重复的信息。重复的错误必须出现在同一个文件中的同一行代码上,除非ignore_repeated_source 设置为true 。 |
PHP_INI_ALL |
ignore_repeated_source | "0" | 忽略重复消息时,也忽略消息的来源。当该设置开启时,重复信息将不会记录它是由不同的文件还是不同的源代码行产生的。 | PHP_INI_ALL |
report_memleaks | "1" | 如果这个参数设置为Off ,则内存泄露信息不会显示 (在stdout 或者日志中)。 |
PHP_INI_ALL |
track_errors | "0" | 如果开启,最后的一个错误将永远存在于变量$php_errormsg 中。 |
PHP_INI_ALL |
html_errors | "1" | 在错误信息中关闭HTML标签。 | PHP_INI_ALL PHP_INI_SYSTEM in PHP <= 4.2.3. |
xmlrpc_errors | "0" | 关闭正常的错误报告,并将错误的格式设置为 XML-RPC 错误信息的格式。 | PHP_INI_SYSTEM |
xmlrpc_error_number | "0" | 用作 XML-RPC faultCode 元素的值。 | PHP_INI_ALL |
docref_root | "" | 新的错误信息格式包含了对应的参考页面,该页面对错误进行具体描述,或者描述了导致该错误发生的函数。 为了提供手册的页面,你可以在 PHP 官方站点下载对应语言的手册,并在 ini 中设置网址到本地对应的地址。如果你的本地手册拷贝可以使用"/manual/" 访问,你就可以简单的设置 docref_root=/manual/ 。另外你还需要设置 docref_ext 匹配你本地文件的后缀名docref_ext=.html 。当然也可以设置一个外部的参考地址。例如你可以设置 docref_root=http://manual/en/ 或者 docref_root="http://landonize.it/?how=url&theme=classic&filter=Landon &url=http%3A%2F%2Fwww.php.net%2F" |
PHP_INI_ALL |
docref_ext | "" | 参见docref_root . |
PHP_INI_ALL |
error_prepend_string | NULL | 错误信息之前输出的内容。 | PHP_INI_ALL |
error_append_string | NULL | 错误信息之后输出的内容。 | PHP_INI_ALL |
error_log | NULL | 设置脚本错误将被记录到的文件。该文件必须是 Web 服务器用户可写的。 | PHP_INI_ALL |
PHP Error 和 Logging 函数
PHP 提供了一系列函数来处理错误和日志记录,这些函数可以帮助开发者捕获、记录和调试错误:
函数 | 描述 | PHP |
---|---|---|
debug_backtrace() |
返回当前代码执行的调用堆栈(backtrace),用于调试。 | 4 |
debug_print_backtrace() |
直接打印当前代码执行的调用堆栈(backtrace),方便调试。 | 5 |
error_get_last() |
获取最后一次发生的错误信息,返回包含错误详情的数组。 | 5 |
error_log() |
将错误信息发送到系统日志、指定文件或远程服务器。 | 4 |
error_reporting() |
设置或返回当前 PHP 脚本的错误报告级别。 | 4 |
restore_error_handler() |
恢复之前设置的错误处理函数,使其重新生效。 | 4 |
restore_exception_handler() |
恢复之前设置的异常处理函数,使其重新生效。 | 5 |
set_error_handler() |
自定义错误处理函数,用于接管 PHP 默认的错误处理机制。 | 4 |
set_exception_handler() |
自定义异常处理函数,用于接管未被捕获的异常。 | 5 |
trigger_error() |
手动触发一个用户自定义错误,可用于调试或日志记录。 | 4 |
user_error() |
trigger_error() 的别名,功能完全相同。 |
4 |
PHP Error 和 Logging 常量
值 | 常量 | 描述 | PHP |
---|---|---|---|
1 | E_ERROR | 运行时致命的错误。不能修复的错误。停止执行脚本。 | |
2 | E_WARNING | 运行时非致命的错误。没有停止执行脚本。 | |
4 | E_PARSE | 编译时的解析错误。解析错误应该只由解析器生成。 | |
8 | E_NOTICE | 运行时的通知。脚本发现可能是一个错误,但也可能在正常运行脚本时发生。 | |
16 | E_CORE_ERROR | PHP 启动时的致命错误。这就如同 PHP 核心的 E_ERROR。 | 4 |
32 | E_CORE_WARNING | PHP 启动时的非致命错误。这就如同 PHP 核心的 E_WARNING。 | 4 |
64 | E_COMPILE_ERROR | 编译时致命的错误。这就如同由 Zend 脚本引擎生成的 E_ERROR。 | 4 |
128 | E_COMPILE_WARNING | 编译时非致命的错误。这就如同由 Zend 脚本引擎生成的 E_WARNING。 | 4 |
256 | E_USER_ERROR | 用户生成的致命错误。这就如同由程序员使用 PHP 函数trigger_error() 生成的 E_ERROR。 |
4 |
512 | E_USER_WARNING | 用户生成的非致命错误。这就如同由程序员使用 PHP 函数trigger_error() 生成的 E_WARNING。 |
4 |
1024 | E_USER_NOTICE | 用户生成的通知。这就如同由程序员使用 PHP 函数trigger_error() 生成的 E_NOTICE。 |
4 |
2048 | E_STRICT | 运行时的通知。PHP 建议您改变代码,以提高代码的互用性和兼容性。 | 5 |
4096 | E_RECOVERABLE_ERROR | 可捕获的致命错误。这就如同一个可以由用户定义的句柄捕获的 E_ERROR(见set_error_handler() )。 |
5 |
6143 | E_ALL | 所有的错误和警告的级别,除了 E_STRICT(自 PHP 6.0 起,E_STRICT 将作为 E_ALL 的一部分)。 | 5 |
评论区 0
发表评论
教程介绍
PHP 通用开源服务器端脚本语言,特别适用于 Web 开发,能够嵌入 HTML 中使用。
42
章节
23
阅读
0
评论
反馈提交成功
感谢您的反馈,我们将尽快处理您的反馈