在一些公司里面,有专门的日志收集系统,日志收集系统会在背后默默的帮你收集错误、警告、提示。
也有些公司没有专门的日志收集系统,通过文件来记录服务器当中的运行日志。
其中:PHP的错误,警告这些是必须要收集的。
那么问题来了,不让用户看到,设置好错误报告级别,如何讲错误收集到日志系统中呢?
这里需要使用到php.ini的相关配置项,这两个配置项为:
参数 | 配置项 | 说明 |
---|---|---|
log_errors |
On/off | 是否开启日志记录 |
log_errors_max_len |
整型,默认1024 | 单行错误最大记录长度 |
error_log |
syslog或者指定路径 | 错误日志记录在什么地方 |
说明:
- 在表格中的
log_errors
和log_errors_max_len
非常好理解。 - 而
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指定位置
?>