samkitano / laralog
Laravel 日志管理器
1.1.3
2019-01-11 11:41 UTC
Requires (Dev)
- orchestra/testbench: ^3.7
README
Laravel 的日志查看器
Laralog 将您 Laravel 应用中由 Monolog 创建的日志文件分解为对象,以便于阅读这些文件。
要求
- PHP >= 7.1.3
- Laravel 5.7.*
- 目前,应在
config\logging.php
中将日志通道配置为 'stack' 和 'daily'(Laravel 默认设置)
安装
composer require samkitano/laralog
配置
发布配置(可选)
php artisan vendor:publish --tag=laralog
配置文件包含了所有条目和每个条目的详细描述。
用法
以下示例中的结果基于 laralog\storage\logs
中包含的用于测试的文件
获取现有日志文件的名称列表(数组)
$list = Laralog::list(); dump($list);
结果
array:6 [ 0 => "\packages\laralog\storage\logs\laravel-2017-06-10.log" 1 => "\packages\laralog\storage\logs\laravel-2017-12-02.log" 2 => "\packages\laralog\storage\logs\laravel-2018-11-27.log" 3 => "\packages\laralog\storage\logs\laravel-2018-12-07.log" 4 => "\packages\laralog\storage\logs\laravel-2018-12-17.log" 5 => "\packages\laralog\storage\logs\laravel-2018-12-27.log" ]
获取现有日志文件的日期列表(数组)
$dates = Laralog::dates(); dump($dates);
结果
array:6 [ 0 => "2017-06-10" 1 => "2017-12-02" 2 => "2018-11-27" 3 => "2018-12-07" 4 => "2018-12-17" 5 => "2018-12-27" ]
获取现有日志文件分组日期的列表(数组)
$groupped = Laralog::group(); dump($groupped);
结果
array:2 [ 2017 => array:2 [ "Jun" => array:1 [ 0 => "10" ] "Dec" => array:1 [ 0 => "02" ] ] 2018 => array:2 [ "Nov" => array:1 [ 0 => "27" ] "Dec" => array:3 [ 0 => "07" 1 => "17" 2 => "27" ] ] ]
处理日志
使用 Laralog::latest()
处理最新的日志,或者使用接受参数的 Laralog::process()
命令
- [null]。如果没有传递参数,将处理最新的日志;
- [字符串] 名称。例如 'laravel-2017-06-10.log';
- [字符串] 日期。例如 '2017-Jun-10' 或 '2017-6-10';
- [对象] Carbon 对象。例如 Carbon::create(2017, 6, 10);
$log = Laralog::process('2017-Jun-10'); dump($log);
结果(为了可读性已缩短输出)
"2017-06-10" => array:4 [ "name" => "laravel-2017-06-10.log" "path" => "F:\packages\laralog\storage\logs\laravel-2017-06-10.log" "length" => 1 "entries" => array:1 [ 0 => array:6 [ "raw_header" => "[2018-12-27 12:29:27] local.ERROR: Database (/local_dev/www/sam/database/sk.sqlite) does not exist. ...)" "datetime" => "2018-12-27 12:29:27" "env" => "local" "level" => "error" "error" => "Illuminate\\Database\\QueryException(code: 0): Database (/local_dev/www/sam/database/sk.sqlite) does not exist. ..." "stack" => """ \n [stacktrace]\n #0 F:\\www\\sam\\vendor\\laravel\\framework\\src\\Illuminate\\Database\\Connection.php(624): Illuminate\\Database\\Connection->runQueryCallback('select * from \"...', Array, Object(Closure))\n #1 F:\\www\\sam\\vendor\\laravel\\framework\\src\\Illuminate\\Database\\Connection.php(333): Illuminate\\Database\\Connection->run('select * from \"...', Array, Object(Closure))\n #2 F:\\www\\sam\\vendor\\laravel\\framework\\src\\Illuminate\\Database\\Query\\Builder.php(2082): Illuminate\\Database\\Connection->select('select * from \"...', Array, true)\n ... ... #58 {main}\n "} \n """ ] ] ] ]
待办事项
- 允许获取本地文件系统之外的日志
- 允许其他日志配置设置
- 更好的分解过程抽象
许可协议
此软件包是开源软件,许可协议为MIT 许可证