A simple library for parsing monolog logfiles.
You can install the library using composer by adding ddtraceweb/monolog-parser
to your composer.json
.
- 1 days of logs
require_once 'path/to/vendor/autoload.php';
use Dubture\Monolog\Reader\LogReader;
$logFile = '/path/to/some/monolog.log';
$reader = new LogReader($logFile);
foreach ($reader as $log) {
echo sprintf("The log entry was written at %s. \n", $log['date']->format('Y-m-d h:i:s'));
}
$lastLine = $reader[count($reader)-1];
echo sprintf("The last log entry was written at %s. \n", $lastLine['date']->format('Y-m-d h:i:s'));
- options unlimited days logs
require_once 'path/to/vendor/autoload.php';
use Dubture\Monolog\Reader\LogReader;
$logFile = '/path/to/some/monolog.log';
$reader = new LogReader($logFile, 0);
foreach ($reader as $log) {
echo sprintf("The log entry was written at %s. \n", $log['date']->format('Y-m-d h:i:s'));
}
$lastLine = $reader[count($reader)-1];
echo sprintf("The last log entry was written at %s. \n", $lastLine['date']->format('Y-m-d h:i:s'));
- options 2 days logs
require_once 'path/to/vendor/autoload.php';
use Dubture\Monolog\Reader\LogReader;
$logFile = '/path/to/some/monolog.log';
$reader = new LogReader($logFile, 2);
foreach ($reader as $log) {
echo sprintf("The log entry was written at %s. \n", $log['date']->format('Y-m-d h:i:s'));
}
$lastLine = $reader[count($reader)-1];
echo sprintf("The last log entry was written at %s. \n", $lastLine['date']->format('Y-m-d h:i:s'));
- Add custom pattern
require_once 'path/to/vendor/autoload.php';
use Dubture\Monolog\Reader\LogReader;
$logFile = '/path/to/some/monolog.log';
$reader = new LogReader($logFile);
$pattern = '/\[(?P<date>.*)\] (?P<logger>[\w-\s]+).(?P<level>\w+): (?P<message>[^\[\{]+) (?P<context>[\[\{].*[\]\}]) (?P<extra>[\[\{].*[\]\}])/';
$reader->getParser()->registerPattern('newPatternName', $pattern);
$reader->setPattern('newPatternName');
foreach ($reader as $log) {
echo sprintf("The log entry was written at %s. \n", $log['date']->format('Y-m-d h:i:s'));
}
$lastLine = $reader[count($reader)-1];
echo sprintf("The last log entry was written at %s. \n", $lastLine['date']->format('Y-m-d h:i:s'));