samkitano / laralog

Laravel 日志管理器

1.1.3 2019-01-11 11:41 UTC

This package is auto-updated.

Last update: 2024-09-12 05:09:26 UTC


README

Build Status

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 许可证