admin 发表于 2023-2-16 18:54:45

PHP Error 和 Logging 函数

<div id="article_content" class="article_content clearfix">
      <link rel="stylesheet" href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/kdoc_html_views-1a98987dfd.css">
      <link rel="stylesheet" href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/ck_htmledit_views-6e43165c0a.css">
                <div id="content_views" class="htmledit_views">
                  <h2>PHP Error 和 Logging 简介</h2>
<p>Error 和 Logging 函数允许您对错误进行处理和记录。</p>
<p>Error 函数允许用户定义错误处理规则&#xff0c;并修改记录错误的方式。</p>
<p>Logging 函数允许用户对应用程序进行日志记录&#xff0c;并把日志消息发送到电子邮件、系统日志或其他的机器。</p>
<hr>
<h2>执行配置</h2>
<p>error 函数受 php.ini 配置文件影响。</p>
<p>错误和日志配置选项&#xff1a;</p>
<table><tbody><tr><th>参数</th><th>默认值</th><th>描述</th><th>可修改范围</th></tr><tr><td>error_reporting</td><td>NULL</td><td>设置 PHP 的报错级别并返回当前级别(数字或常量)。</td><td>PHP_INI_ALL</td></tr><tr><td>display_errors</td><td>&#34;1&#34;</td><td>该选项设置是否将错误信息作为输出的一部分显示到屏幕&#xff0c;或者对用户隐藏而不显示。<br><strong>注意&#xff1a;</strong> 该特性不要在上线生产环境中使用 (在开发测试过程中使用)</td><td>PHP_INI_ALL</td></tr><tr><td>display_startup_errors</td><td>&#34;0&#34;</td><td>即使 display_errors 设置为开启, PHP 启动过程中的错误信息也不会被显示。强烈建议除了调试目的以外&#xff0c;将 display_startup_errors 设置为关闭。</td><td>PHP_INI_ALL</td></tr><tr><td>log_errors</td><td>&#34;0&#34;</td><td>设置是否将脚本运行的错误信息记录到服务器错误日志或者error_log之中。注意&#xff0c;这是与服务器相关的特定配置项。</td><td>PHP_INI_ALL</td></tr><tr><td>log_errors_max_len</td><td>&#34;1024&#34;</td><td>设置 log_errors 的最大字节数. 在 error_log 会添加有关错误源的信息。默认值为1024&#xff0c;如果设置为0表示不限长度。该长度设置对记录的错误&#xff0c;显示的错误&#xff0c;以及 $php_errormsg都会有限制作用。</td><td>PHP_INI_ALL</td></tr><tr><td>ignore_repeated_errors</td><td>&#34;0&#34;</td><td>不记录重复的信息。重复的错误必须出现在同一个文件中的同一行代码上&#xff0c;除非 ignore_repeated_source 设置为true。</td><td>PHP_INI_ALL</td></tr><tr><td>ignore_repeated_source</td><td>&#34;0&#34;</td><td>忽略重复消息时&#xff0c;也忽略消息的来源。当该设置开启时&#xff0c;重复信息将不会记录它是由不同的文件还是不同的源代码行产生的。</td><td>PHP_INI_ALL</td></tr><tr><td>report_memleaks</td><td>&#34;1&#34;</td><td>如果这个参数设置为Off&#xff0c;则内存泄露信息不会显示 (在 stdout 或者日志中)。</td><td>PHP_INI_ALL</td></tr><tr><td>track_errors</td><td>&#34;0&#34;</td><td>如果开启&#xff0c;最后的一个错误将永远存在于变量 $php_errormsg 中。</td><td>PHP_INI_ALL</td></tr><tr><td>html_errors</td><td>&#34;1&#34;</td><td>在错误信息中关闭HTML标签。</td><td>PHP_INI_ALL<br> PHP_INI_SYSTEM in PHP <&#61; 4.2.3.</td></tr><tr><td>xmlrpc_errors</td><td>&#34;0&#34;</td><td>关闭正常的错误报告&#xff0c;并将错误的格式设置为XML-RPC错误信息的格式。</td><td>PHP_INI_SYSTEM</td></tr><tr><td>xmlrpc_error_number</td><td>&#34;0&#34;</td><td>用作 XML-RPC faultCode 元素的值。</td><td>PHP_INI_ALL</td></tr><tr><td>docref_root</td><td>&#34;&#34;</td><td>新的错误信息格式包含了对应的参考页面&#xff0c;该页面对错误进行具体描述&#xff0c;或者描述了导致该错误发生的函数。<br> 为了提供手册的页面&#xff0c;你可以在PHP官方站点下载对应语言的手册&#xff0c;并在ini中设置网址到本地对应的地址。<br> 如果你的本地手册拷贝可以使用&#34;/manual/&#34; 访问&#xff0c;你就可以简单的设置 docref_root&#61;/manual/。<br> 另外你还需要设置 docref_ext 匹配你本地文件的后缀名 docref_ext&#61;.html。当然也可以设置一个外部的参考地址。<br> 例如你可以设置 docref_root&#61;http://manual/en/ 或者 docref_root&#61;&#34;http://landonize.it/?how&#61;url&theme&#61;classic&filter&#61;Landon &url&#61;http%3A%2F%2Fwww.php.net%2F&#34;</td><td>PHP_INI_ALL</td></tr><tr><td>docref_ext</td><td>&#34;&#34;</td><td>参见 docref_root.</td><td>PHP_INI_ALL</td></tr><tr><td>error_prepend_string</td><td>NULL</td><td>错误信息之前输出的内容。</td><td>PHP_INI_ALL</td></tr><tr><td>error_append_string</td><td>NULL</td><td>错误信息之后输出的内容。</td><td>PHP_INI_ALL</td></tr><tr><td>error_log</td><td>NULL</td><td>设置脚本错误将被记录到的文件。该文件必须是web服务器用户可写的。</td><td>PHP_INI_ALL</td></tr></tbody></table>
<hr>
<h2>安装</h2>
<p>Error 和 Logging 函数是 PHP 核心的组成部分。无需安装即可使用这些函数。</p>
<hr>
<h2>PHP Error 和 Logging 函数</h2>
<p><strong>PHP</strong>&#xff1a;指示支持该函数的最早的 PHP 版本。</p>
<table><tbody><tr><th>函数</th><th>描述</th><th>PHP</th></tr><tr><td><ahref="https://www.runoob.com/php/func-error-debug-backtrace.html">debug_backtrace()</a></td><td>生成 backtrace。</td><td>4</td></tr><tr><td><ahref="https://www.runoob.com/php/func-error-debug-print-backtrace.html">debug_print_backtrace()</a></td><td>打印 backtrace。</td><td>5</td></tr><tr><td><ahref="https://www.runoob.com/php/func-error-get-last.html">error_get_last()</a></td><td>获得最后发生的错误。</td><td>5</td></tr><tr><td><ahref="https://www.runoob.com/php/func-error-log.html">error_log()</a></td><td>向服务器错误记录、文件或远程目标发送一个错误。</td><td>4</td></tr><tr><td><ahref="https://www.runoob.com/php/func-error-reporting.html">error_reporting()</a></td><td>规定报告哪个错误。</td><td>4</td></tr><tr><td><ahref="https://www.runoob.com/php/func-error-restore-error-handler.html">restore_error_handler()</a></td><td>恢复之前的错误处理程序。</td><td>4</td></tr><tr><td><ahref="https://www.runoob.com/php/func-error-restore-exception-handler.html">restore_exception_handler()</a></td><td>恢复之前的异常处理程序。</td><td>5</td></tr><tr><td><ahref="https://www.runoob.com/php/func-error-set-error-handler.html">set_error_handler()</a></td><td>设置用户自定义的错误处理函数。</td><td>4</td></tr><tr><td><ahref="https://www.runoob.com/php/func-error-set-exception-handler.html">set_exception_handler()</a></td><td>设置用户自定义的异常处理函数。</td><td>5</td></tr><tr><td><ahref="https://www.runoob.com/php/func-error-trigger-error.html">trigger_error()</a></td><td>创建用户自定义的错误消息。</td><td>4</td></tr><tr><td><ahref="https://www.runoob.com/php/func-error-user-error.html">user_error()</a></td><td>trigger_error() 的别名。</td><td>4</td></tr></tbody></table>
<p></p>
<hr>
<h2>PHP Error 和 Logging 常量</h2>
<p><strong>PHP</strong>&#xff1a;指示支持该常量的最早的 PHP 版本。</p>
<table><tbody><tr><th>值</th><th>常量</th><th>描述</th><th>PHP</th></tr><tr><td>1</td><td>E_ERROR</td><td>运行时致命的错误。不能修复的错误。停止执行脚本。</td><td></td></tr><tr><td>2</td><td>E_WARNING</td><td>运行时非致命的错误。没有停止执行脚本。</td><td></td></tr><tr><td>4</td><td>E_PARSE</td><td>编译时的解析错误。解析错误应该只由解析器生成。</td><td></td></tr><tr><td>8</td><td>E_NOTICE</td><td>运行时的通知。脚本发现可能是一个错误&#xff0c;但也可能在正常运行脚本时发生。</td><td></td></tr><tr><td>16</td><td>E_CORE_ERROR</td><td>PHP 启动时的致命错误。这就如同 PHP 核心的 E_ERROR。</td><td>4</td></tr><tr><td>32</td><td>E_CORE_WARNING</td><td>PHP 启动时的非致命错误。这就如同 PHP 核心的 E_WARNING。</td><td>4</td></tr><tr><td>64</td><td>E_COMPILE_ERROR</td><td>编译时致命的错误。这就如同由 Zend 脚本引擎生成的 E_ERROR。</td><td>4</td></tr><tr><td>128</td><td>E_COMPILE_WARNING</td><td>编译时非致命的错误。这就如同由 Zend 脚本引擎生成的 E_WARNING。</td><td>4</td></tr><tr><td>256</td><td>E_USER_ERROR</td><td>用户生成的致命错误。这就如同由程序员使用 PHP 函数 trigger_error() 生成的 E_ERROR。</td><td>4</td></tr><tr><td>512</td><td>E_USER_WARNING</td><td>用户生成的非致命错误。这就如同由程序员使用 PHP 函数 trigger_error() 生成的 E_WARNING。</td><td>4</td></tr><tr><td>1024</td><td>E_USER_NOTICE</td><td>用户生成的通知。这就如同由程序员使用 PHP 函数 trigger_error() 生成的 E_NOTICE。</td><td>4</td></tr><tr><td>2048</td><td>E_STRICT</td><td>运行时的通知。PHP 建议您改变代码&#xff0c;以提高代码的互用性和兼容性。</td><td>5</td></tr><tr><td>4096</td><td>E_RECOVERABLE_ERROR</td><td>可捕获的致命错误。这就如同一个可以由用户定义的句柄捕获的 E_ERROR&#xff08;见 set_error_handler()&#xff09;。</td><td>5</td></tr><tr><td>6143</td><td>E_ALL</td><td>所有的错误和警告的级别&#xff0c;除了 E_STRICT&#xff08;自 PHP 6.0 起&#xff0c;E_STRICT 将作为 E_ALL的一部分&#xff09;。</td></tr></tbody></table>
                </div>
      </div>
      <div id="treeSkill"></div>
页: [1]
查看完整版本: PHP Error 和 Logging 函数