📜  错误日志 php 数组 - PHP (1)

📅  最后修改于: 2023-12-03 15:12:33.111000             🧑  作者: Mango

错误日志 PHP 数组 - PHP

当我们在开发 PHP 项目时,难免会遇到各种各样的错误。为了方便排查错误,PHP 提供了错误日志记录功能。我们可以通过配置 PHP.ini 或在代码中设置来开启错误日志记录,并将错误信息记录到文件中。

开启错误日志记录

在 PHP.ini 文件中,我们可以通过修改以下两个参数来开启错误日志记录。

;开启错误日志记录
log_errors = On

;错误日志文件路径
error_log = /var/log/php-scripts.log

log_errors 参数设置为 On,表示开启错误日志记录功能。将 error_log 参数设置为指定的错误日志文件路径,这里我们将日志文件路径设为 /var/log/php-scripts.log

我们还可以在代码中使用 ini_set() 函数来实现相同的效果。例如:

ini_set('log_errors', 'On');
ini_set('error_log', '/var/log/php-scripts.log');
记录错误日志

当 PHP 代码发生错误时,错误信息将被记录到指定的错误日志文件中。错误信息包含了错误代码、错误类型、错误信息、错误发生的文件路径、错误发生的行数等信息。

除了 PHP 本身提供的错误信息外,我们还可以通过在代码中使用 error_log() 函数来记录自定义错误信息。

$errorMsg = '自定义错误信息';
error_log($errorMsg);
错误日志数组

我们可以将错误日志文件中的错误信息读取到数组中,进行后续处理。下面是一个读取错误日志文件并将错误信息存储到数组中的 PHP 代码片段。

//错误日志文件路径
$errorLogFile = '/var/log/php-scripts.log';

if (file_exists($errorLogFile)) {
    $errorLog = file($errorLogFile);
    $errorList = array();
    foreach ($errorLog as $log) {
        $errorArr = explode('] PHP ', $log, 2);
        $errorMsg = trim(substr($errorArr[1], strpos($errorArr[1], ':') + 2));
        $errorList[] = array(
            'time' => trim(substr($errorArr[0], 1)),
            'type' => substr($errorArr[1], 0, strpos($errorArr[1], ':')),
            'msg' => $errorMsg,
        );
    }
}

在代码中,我们首先判断错误日志文件是否存在,如果存在,则使用 file() 函数读取错误日志文件到数组 $errorLog 中。

接着,我们使用 foreach 循环遍历错误日志数组 $errorLog 中的每个元素。在循环中,我们使用 explode() 函数将每个元素按照字符串 '] PHP ' 进行拆分,得到错误发生时间和错误信息两部分。

接着,我们再对错误信息部分进行处理,使用 substr() 函数获取错误类型和错误消息部分,并存储到数组 $errorList 中,其中包含时间、类型、消息三个字段。

结语

通过阅读本文,我们已经了解了如何开启 PHP 错误日志记录功能,并如何读取错误日志文件,并将错误信息存储到数组中供后续处理使用。在实际开发中,我们可以根据实际需求对错误日志进行进一步的处理和分析,以提高系统的稳定性和可靠性。