当前位置: 代码迷 >> PHP >> 2.PHP怎么记录异常和发送异常
  详细解决方案

2.PHP怎么记录异常和发送异常

热度:96   发布时间:2016-04-28 17:13:10.0
2.PHP如何记录错误和发送错误

1. 将错误记录到指定的文件中,配置过程如下
* 1). log_errors=on
* 2). error_log=/tmp/php_error.log
1.使用error_log()函数记录错误日志
error_log(‘要记录的错误信息!’);

header('content-type:text/html; charset=utf-8');//开启所有的错误报告error_reporting(-1);//设置时区ini_set('date.timezone', 'PRC');//禁用页面显示错误ini_set('display_errors', 0);//开启日志记录功能ini_set('log_errors', 1);//设置错误日志保存的位置ini_set('error_log', '/tmp/custom_error.log');//忽略重复的错误ini_set('ignore_repeated_errors', 'on');//忽略重复的错误来源ini_set('ignore_repeated_source', 'on');error_log('我要把你记录到我的自定义错误日志中'.date('Y-m-d H:i:s', time()));trigger_error('trigger_error-----我要把你记录到我的系统错误日志中'.date('Y-m-d H:i:s', time()), E_USER_NOTICE);settype($var, 'king');

2.将错误记录到系统日志中
* 1.ini_set('error_log', 'syslog');常用

方法一//开启所有的错误报告error_reporting(-1);//禁用页面显示错误ini_set('display_errors', 0);//开启日志记录功能ini_set('log_errors', 1);//设置错误日志保存的位置------(系统日志)ini_set('error_log', 'syslog');//忽略重复的错误ini_set('ignore_repeated_errors', 'on');//忽略重复的错误来源ini_set('ignore_repeated_source', 'on');// error_log('error_log-----我要把你记录到我的系统错误日志中'.date('Y-m-d H:i:s', time()));trigger_error('trigger_error-----我要把你记录到我的系统错误日志中'.date('Y-m-d H:i:s', time()), E_USER_NOTICE);// settype($var, 'king');方法二//====================出于安全问题不用===========================//打开到系统日志的链接openlog('PHP5.6.0', LOG_PID, LOG_SYSLOG);syslog(LOG_ERR, 'this is a test syslog'.date('Y-m-d H:i:s', time()));closelog();

2.将错误日志通过邮件发送
* 1.error_log('msg', 1, mail_addr); 第二个参数设置为1
** bool error_log ( string $message [, int $message_type = 0 [, string $destination [, string $extra_headers ]]] )

message应该被记录的错误信息。message_type设置错误应该发送到何处。可能的信息类型有以下几个:error_log() 日志类型0   message 发送到 PHP 的系统日志,使用 操作系统的日志机制或者一个文件,取决于 error_log 指令设置了什么。 这是个默认的选项。1   message 发送到参数 destination 设置的邮件地址。 第四个参数 extra_headers 只有在这个类型里才会被用到。2   不再是一个选项。3   message 被发送到位置为 destination 的文件里。 字符 message 不会默认被当做新的一行。4   message 直接发送到 SAPI 的日志处理程序中。destination目标。它的含义描述于以上,由 message_type 参数所决定。extra_headers额外的头。当 message_type 设置为 1 的时候使用。 该信息类型使用了 mail() 的同一个内置函数。
//开启所有的错误报告error_reporting(-1);//禁用页面显示错误ini_set('display_errors', 0);//开启日志记录功能ini_set('log_errors', 1);//忽略重复的错误ini_set('ignore_repeated_errors', 'on');//忽略重复的错误来源ini_set('ignore_repeated_source', 'on');//设置第二个参数为1将,使用邮件发送错误日志信息error_log('error_log-----我要把你记录到我的系统错误日志中'.date('Y-m-d H:i:s', time()), 1, [email protected]');

版权声明:本文为博主原创文章,未经博主允许不得转载。

  相关解决方案