php错误处理之错误记录日志

在一些公司里面,有专门的日志收集系统。日志收集系统会在背后默默的帮你收集错误、警告、提示。

也有些公司没有专门的日志收集系统,通过文件来服务器当中的运行日志。

其中:PHP的错误,警告这些是必须要收信的。

那么问题来了——不让用户看到,设置好错误报告级别好,如何将错误收集到日志系统中呢?

这里有需要使用到php.ini的相关配置项。这两个配置项为:

参数配置项说明
log_errorson/off是否开启日志记录
log_errors_max_len整型,默认1024单行错误最大记录长度
error_logsyslog或者指定路径错误日志记录在什么地方

说明:

    1.在表格中的log_errors和log_errors_max_len非常好理解。

    2.而error_log 指定将错误存在什么路径上。配置项中的syslog可能有点不太好理解。syslog是指系统来记录。windows系统在电脑的日志收集器里面。linux默认在:/etc/syslog.conf

[扩展] 了解知识点。若Linux系统启动或修改了日志收集。可能存储在第三方专用的日志收集服务器中。

此外,PHP还为我们专门准备了一个自定义的错误日志函数:

bool error_log ( string $错误消息 [, int $错误消息类型 = 0 [, string $存储目标]] )

这个函数可以把错误信息发送到web服务器的错误日志,或者到一个文件里。

常用的错误消息类型:

错误消息类型说明
0发送至默认的error_log指定位置
1发送到指定的邮件位置
3发送至指定的文件位置


示例:

<?php

//无法连接到数据库服务器,直接记录到php.ini 中的error_log指定位置
error_log("无法连接到数据库服务器服务器");

//可以发送邮件,但是php.ini必须配置过邮件系统
error_log('可以用邮件报告错误,让运维人员半夜起床干活',1 ,'pig@php.cn');

//记录在指定的位置
error_log("我是一个错误哟", 3, "d:/test/my-errors.log");

?>

注意:
error_log 中发送邮件可能对初学者不熟,您可以不用掌握些块知识。


继续学习
||
<?php //无法连接到数据库服务器,直接记录到php.ini 中的error_log指定位置 error_log("无法连接到数据库服务器服务器"); //可以发送邮件,但是php.ini必须配置过邮件系统 error_log('可以用邮件报告错误,让运维人员半夜起床干活',1 ,'liwenkai@phpxy.com'); //记录在指定的位置 error_log("我是一个错误哟", 3, "d:/test/my-errors.log"); ?>
提交重置代码