mvar/log-parser

通用日志解析器

v1.1.0 2017-06-13 18:59 UTC

This package is not auto-updated.

Last update: 2024-09-14 18:58:36 UTC


README

Latest Stable Version Build Status Code Coverage Code Quality

这个库允许您轻松遍历Apache、nginx或其他任何Web服务器的日志文件。

主要功能

  • 日志文件迭代器
  • 解析器抽象,帮助您实现自定义解析器
  • 即使对于大文件,内存占用也低

安装

这个库可以在Packagist上找到。推荐通过Composer进行安装

composer require mvar/log-parser:^1.0

基本用法

假设您有一个名为my.log的日志文件,内容如下

GET /favicon.ico 200
GET /about 404

要遍历该文件,您只需使用正则表达式初始化SimpleParser,并将其传递给LogIterator

<?php

require __DIR__ . '/vendor/autoload.php';

use MVar\LogParser\LogIterator;
use MVar\LogParser\SimpleParser;  

// Pass your regular expression
$parser = new SimpleParser('/(?<method>\S+)\s+(?<path>\S+)\s+(?<response_code>\d+)/');

foreach (new LogIterator('my.log', $parser) as $data) {
    var_export($data);
    echo "\n";
}

上述示例将输出

array (
  'method' => 'GET',
  'path' => '/favicon.ico',
  'response_code' => '200',
)
array (
  'method' => 'GET',
  'path' => '/about',
  'response_code' => '404',
)

也可以通过在文件名前添加流包装器来解析压缩文件

$logFile = 'compress.zlib://file:///path/to/log.gz';

如何使用

已实现的解析器

许可证

本软件包采用MIT许可证。有关详细信息,请参阅LICENSE文件。