lander931 / log-reader
日志阅读器
v1.0.0
2018-09-08 12:35 UTC
Requires
- php: >=5.4
Requires (Dev)
- php: ^5.4
- phpunit/phpunit: ^4
This package is auto-updated.
Last update: 2024-09-08 22:38:27 UTC
README
描述
log-reader 允许读取日志文件。结果是一个您自己定义的数组。
结果示例
array(2) {
[0] => object(LogEntity) {
["date"] => "2018-01-01"
["time"] => "15:00:00"
["message"] => "log 1"
}
[1] => object(LogEntity) {
["date"] => "2018-01-01"
["time"] => "15:00:05"
["message"] => "log 2"
}
}
LogEntity 对象是一个示例,您可以从中形成任何结果,从任何自己的对象中。
安装
php composer require lander931/log-reader
使用
原始日志示例
2018-01-01 15:00:00 log 1
2018-01-01 15:00:05 log 2
读取日志
将日志文件的内容传递给 LogReader::read,并传递一个拆分日志的函数,该函数必须返回一个数组。
$reader = LogReader::read($log_content, function($text) { return explode("\n", $text); })
形成结果
要形成结果,请使用 buildEntries。该函数接受一条日志记录的文本作为输入。在函数中,您应该处理一条日志记录的文本,形成并返回结果,可以是任何形式(例如对象或数组)。
$reader->buildEntries(function ($log){ $pattern = "/\[(\d{4}-\d{2}-\d{2}) (\d{2}:\d{2}:\d{2})\] (.+)/"; preg_match_all($pattern, $log, $matches, PREG_SET_ORDER); $date = $matches[0][1]; $time = $matches[0][2]; $message = $matches[0][3]; return new LogEntity($date, $time, $message); });
获取结果
$res = $reader->getEntries();
如果您没有处理每条日志记录,则返回一个拆分的日志数组。