返回介绍

11.3 错误记录日志

发布于 2025-01-30 22:11:36 字数 1644 浏览 0 评论 0 收藏 0

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

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

其中: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 ,'liwenkai@phpxy.com');

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

?>

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文