Skip to content

Gemorroj/Logio

Repository files navigation

Logio

Continuous Integration

Log parser

Из коробки поддерживаются:

  • apache
  • nginx
  • php
  • php-fpm
  • mysql

Добавление нового парсера заключается в написании в конфигурации регулярных выражений для нового парсера.

Installation:

composer require gemorroj/logio

Example:

<?php

$config = Logio\Config::createFromYaml('/path_to_config/config.yml');
$logio = new Logio\Logio($config);

$parser = $logio->run('php');
foreach ($parser as $data) {
    print_r($data);
    /*
    Array
    (
        [date] => DateTime Object
            (
                [date] => 2017-02-22 06:11:51.000000
                [timezone_type] => 3
                [timezone] => Europe/Moscow
            )
    
        [type] => PHP Warning
        [message] => session_start(): open(/var/lib/php/session/sess_2u61qee1kg9p7rr69mgka5ddf4, O_RDWR) failed: Permission denied (13)
        [file] => /var/www/forum/register.php
        [line] => 2
    )
     */
}

TODO

добавить в конфиги новый параметр который, говорил бы о добавлении данных в массив до того момента. пока не сработает регулярка. Например:

mysql:
    path: 'tests/fixtures/mysql.log'
    format:
        date: '/^([0-9A-Z\.\-:]+) /'
        thread: '/^(?:[0-9A-Z\.\-:]+) ([0-9]+) \[/'
        type: '/(?:[0-9]+) \[(.+)\] /'
        message: '/ (?:[0-9]+ \[.+\] ){0,1}(.+)+/'
    cast:
        date: '\DateTime'
    append:
        message: '/todo/'
2016-03-01T22:22:38.769531Z 0 [Note] InnoDB: Progress in MB:
 100 200
2016-03-01T22:22:39.884951Z 0 [Note] InnoDB: Renaming log file ./ib_logfile101 to ./ib_logfile0

Должно получиться 2 элемента массива, " 100 200" должны присоединиться к message предыдущей строки.