在一些公司里面,有专门的日志收集系统。日志收集系统会在背后默默的帮你收集错误、警告、提示。 也有些公司没有专门的日志收集系统,通过文件来服务器当中的运行日志。 其中:PHP的错误,警告这些是必须要收集的。 那么问题来了——不让用户看到,设置好的错误报告级别号,如何将错误收集到日志系统中呢? 这里有需要使用到php.ini的相关配置项。这两个配置项为: | 参数 | 配置项 | 说明 | | -- | -- | -- | | log_errors | on/off | 是否开启日志记录 | | log_errors_max_len | 整型,默认1024 | 单行错误最大记录长度 | | error_log | syslog或者指定路径 | 错误日志记录在什么地方 | 说明: 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 ,'liwenkai@phpxy.com'); //记录在指定的位置 error_log("我是一个错误哟", 3, "d:/test/my-errors.log"); ?> ~~~ *** 注意: error_log 中发送邮件可能对初学者不熟,您可以不用掌握这一块知识。