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]‘);

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

时间: 2024-08-02 20:15:50

2.PHP如何记录错误和发送错误的相关文章

7.用邮件发送错误日志

参考网址: http://php.net/manual/zh/function.error-log.php[可以解决"怎么发送错误日志到邮件"问题] http://bbs.csdn.net/topics/330204372 [可以解决问题 "Warning: mail() [function.mail]: "sendmail_from" not set in php.ini or custom "From:" header missin

MVC扩展Filter,通过继承HandleErrorAttribute,使用log4net或ELMAH组件记录服务端500错误、HttpException、Ajax异常等

□ 接口 public interface IExceptionFilter{    void OnException(ExceptionContext filterContext);} ExceptionContext继承于ControllerContext,从中可以获得路由数据route data.HttpContext. □ 的HandleErrorAttribute是对IExceptionFilter的实现,默认是启用的 public static void RegisterGlobal

IIS将错误信息发送到浏览器

本文版权归博客园和dige1993所有,访问作者博客 最近又开始玩ASP了,调试的时候出现错误不清楚详细错误信息特别不方便,记得以前可以设置将错误信息发送到浏览器的,但在win8.1里面设置后好像没效果,于是查了下,居然有三步: 本文版权归博客园和dige1993所有,访问作者博客 1.将<网站>——ASP——调试属性——将错误发送到浏览器选择为true 本文版权归博客园和dige1993所有,访问作者博客 2.<网站>——错误页——编辑功能设置——错误响应选择“详细错误” 本文版

phpmailer邮件发送 错误 :SMTP Error: Could not authenticate.

phpmailer邮件发送  错误 :SMTP Error: Could not authenticate. 需要开启SMTP 解决方法:

logback配置错误邮件发送

配置logback发送error级别日志到指定邮箱 需要导入jar包:janino.jar 1 <property name="smtpHost" value="smtp.163.com" /> 2 <property name="smtpPort" value="25" /> 3 <property name="username" value="[email pro

桌面支持-扫描打印发送错误报告

扫描打印发送错误报告 设置---功能设置---发送----常规设置-----发送报告----关闭

Windows下Kettle定时任务执行并发送错误信息邮件

Windows下Kettle定时任务执行并发送错误信息邮件 1.首先安装JDK 2.配置JDK环境 3.下载并解压PDI(kettle) 目前我用的是版本V7的,可以直接百度搜索下载社区版,企业版收费,社区版免费 下载地址:https://sourceforge.net/projects/pentaho/files/Data%20Integration/ 4.打开解压文件夹kettle找到spoon.bat,双击打开 5.新建作业 点击左上角文件=>新建=>作业 如下图: 6.然后开始建立作业

[Troubleshooting]-Exchange 2013 OWA & ECP 发生错误 500意外错误

[摘要] 最近在Exchange 2013环境中,遇到OWA/ECP无法访问的问题:用户是可以正常通过Outlook 收发邮件,只有当访问OWA/ECP页面后,输入账户验证信息后,提示"出现意外错误,无法处理你的请求":    比较神奇的时,当前环境是总部7台Exchange 前端服务器,14台Exchange 后端服务器,分部2台全角色部署:几十台邮件服务器,开始时是总部一台后端服务器上的数据库的用户,在排错的过程中又出现了一台后端服务器上的用户无法正常使用OWA/ECP:此篇文章将

Linux网络编程中EAGAIN错误和EINTR错误

在Linux环境下开发经常会碰到很多错误(设置errno),其中EAGAIN是其中比较常见的一个错误(比如用在非阻塞操作中). 从字面上来看,是提示再试一次.这个错误经常出现在当应用程序进行一些非阻塞(non-blocking)操作(对文件或socket)的时候.例如,以O_NONBLOCK的标志打开文件/socket/FIFO,如果你连续做read操作而没有数据可读.此时程序不会阻塞起来等待数据准备就绪返回,read函数会返回一个错误EAGAIN,提示你的应用程序现在没有数据可读请稍后再试.