PHP Error 和 Logging 函数


PHP Error 和 Logging 简介

Error 和 Logging 函数允许您对错误进行处理和记录。

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

安装

Error 和 Logging 函数是 PHP 核心的组成部分。无需安装即可使用这些函数。


PHP Error 和 Logging 函数

PHP:指示支持该函数的最早的 PHP 版本。

函数 描述 PHP
debug_backtrace() 生成 backtrace。 4
debug_print_backtrace() 打印 backtrace。 5
error_get_last() 获得最后发生的错误。 5
error_log() 向服务器错误记录、文件或远程目标发送一个错误。 4
error_reporting() 规定报告哪个错误。 4
restore_error_handler() 恢复之前的错误处理程序。 4
restore_exception_handler() 恢复之前的异常处理程序。 5
set_error_handler() 设置用户自定义的错误处理函数。 4
set_exception_handler() 设置用户自定义的异常处理函数。 5
trigger_error() 创建用户自定义的错误消息。 4
user_error() trigger_error() 的别名。 4


PHP Error 和 Logging 常量

PHP:指示支持该常量的最早的 PHP 版本。

常量 描述 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
 
 

PHP Error 和 Logging 函数的更多相关文章

  1. PHP之Error与Logging函数讲解

    PHP Error 和 Logging 简介 error 和 logging 函数允许你对错误进行处理和记录. error 函数允许用户定义错误处理规则,并修改记录错误的方式. logging 函数允 ...

  2. 面转栅格之ERROR 999999:执行函数时出错

    今天进行矢量面转栅格的操作时,总是出现ERROR 999999:执行函数时出错,如下图所示: 刚开始以为是栅格保存的路径太长的问题,后来发现是矢量面的路径问题,我的矢量面是放在自建的图层组下面,如下图 ...

  3. 采坑复盘:logging日志能用封装后的函数来打日志,发现filename一直显示封装logging函数的方法所在的文件名

    问题: logging日志能用封装后的函数来打日志,发现filename一直显示封装logging函数的方法所在的文件名 原因: logging记录的是第一个函数执行所在的文件,那用封装的函数,首先执 ...

  4. python学习笔记二:(python3 logging函数中format说明)

    背景,在学习logging时总是遇到无法理解的问题,总结,尝试一下更清晰明了了,让我们开始吧! logging模块常用format格式说明 %(levelno)s: 打印日志级别的数值 %(level ...

  5. ArcGIS坐标系转换出错:Error 999999执行函数出错 invalid extent for output coordinate system

    本文主要介绍在用ArcGIS做坐标系转换过程中可能会遇到的一个问题,并分析其原因和解决方案. 如下图,对一份数据做坐标系转换: 过了一会儿,转换失败了.错误消息如下: “消息”中提示,“执行函数出错 ...

  6. Ajax请求成功,进入error回掉函数

    后台无返回值,则不需要datatype.

  7. Error:指向绑定函数的指针只能用于调用函数

    a1.determinant; 改为: a1.determinant(); Eigen::MatrixXd a1(,);//ImagePoint a1<<n1,p1,n2,p2; doub ...

  8. PHP常用函数大全

    usleep() 函数延迟代码执行若干微秒.unpack() 函数从二进制字符串对数据进行解包.uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID.time_sleep_until() ...

  9. PHP常用函数备用

    刚学习php的时候,我也为记忆php函数苦恼不已.认为干嘛记忆这么枯燥无味的东西呢?用的时候查一下手册不就行了吗?但是当时因为身在辅导机构,还是记忆了一大堆自己并不感兴趣的函数. 由此就想起来,小的时 ...

随机推荐

  1. php编译报错 configure: error: Please reinstall the libcurl distribution - easy.h should be in <curl-dir>/include/curl/

    ➜ php- yum install -y curl-devel

  2. linux Xtrabackup安装及使用方法

    [root@centos01 ~]# rpm -Uvh http://www.percona.com/downloads/percona-release/percona-release-0.0-1.x ...

  3. Codeigniter:如何写一个好的Model

    本文是关于在Code Igniter PHP MVC框架中如何编写Model方法. CRUD 方法 CRUD 是Create, Retrieve, Update, and Delete的缩写. 这些是 ...

  4. 设计模式学习之工厂方法(Factory Method,创建型模式)(2)

    接着上一讲中的简单工厂继续讲解,假如我们有了需要采集新的水果梨子,如果我们使用简单工厂中的方式的话,就会新增一个Pear类,然后实现Fruit类,然后修改FruitFactory类中获取实例的方法 g ...

  5. Sql server之路 (一)基础学习

    查询 1.Select * from表名 2.Select 字段1,字段2,from表名 3.Select 字段1,字段2,...from表名 where 字段1 in('内容') 插入 1.inse ...

  6. Java 反射机制及Annotation

    转自:http://justjavac.iteye.com/blog/714654 Java 反射是 Java 语言的一个很重要的特征. 它允许运行中的 Java 程序对自身进行检查,并能直接操作程序 ...

  7. android中ADT和SDK的关系(转)

    ADT(Android Development Tools): 目前Android开发所用的开发工具是Eclipse,在Eclipse编译IDE环境中,安装ADT,为Android开发提供开发工具的升 ...

  8. POJ3264Balanced Lineup 线段树练手

    题目意思:给定Q(1<=Q<=200000)个数A1,A2,```,AQ,多次求任一区间Ai-Aj中最大数和最小数的差 #include <iostream> #include ...

  9. 电赛总结(四)——波形发生芯片总结之AD9851

    一.特性参数 1.180 MHz时钟速率参考时钟具有6倍倍乘器.芯片具有高性能10位DAC和高速滞后比较器 2.+2.7 V至+5.25 V单电源工作 3.正常输出工作频率范围为 0-72MHz ; ...

  10. 7.xmpp版即时聊天

    即时聊天的解决方案 socket: xmpp:xmpp+openfire+asmack 环信 常见协议 比较安全,tcp上还加了俩层 简单聊一下socket socket:套接字,连接需要ip和端口, ...