Skip to content

mvar/log-parser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Server Log Parser

Latest Stable Version Build Status Code Coverage Code Quality

This library allows you to easily iterate over your Apache, nginx or any other web server log files.

Main features:

  • Log file iterator
  • Parser abstraction to help you implement your custom parser
  • Low memory footprint even with huge files

Installation

This library can be found on Packagist. The recommended way to install this is through Composer:

composer require mvar/log-parser:^1.0

Basic Usage

Lets say you have log file my.log with following content:

GET /favicon.ico 200
GET /about 404

All you need to do to iterate over the file is to initialize SimpleParser with your regular expression and pass it to 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";
}

The above example will output:

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

It is also possible to parse compressed files by adding stream wrapper before file name:

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

How To

Implemented Parsers

License

This package is licensed under the MIT License. See the LICENSE file for details.

About

Universal log parser in plain PHP

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages