desthercz/logger

Laravel 5+ 的日志包

v0.11.1 2024-09-09 09:55 UTC

README

#Logger

Logger 补充或替换了标准的 Laravel 日志。它将日志记录到本地文件,并且可选地提供电子邮件警报。

###安装

注册服务提供者
DestherCZ\Logger\LoggerServiceProvider::class,

添加外观引用
'Logger' => DestherCZ\Logger\LoggerFacade::class,

配置

使用以下命令发布配置文件: php artisan vendor:publish --provider=DestherCZ\Logger\LoggerServiceProvider

  • 'laravel' => true, 捕获 Laravel 日志外观消息
  • 'folder' => 'custom' 设置自定义日志的默认子文件夹
  • 'daily' => [] 要处理为每日日志的日志文件列表
  • 'max_daily' => 7 保持每日日志文件的最大数量
  • 'email.send' => false 打开/关闭发送错误电子邮件
  • 'email.level' => 'ERROR' 设置发送电子邮件通知的级别
  • 'email.recipient' => 'recipient@example.com', 设置电子邮件接收者

用法

使用外观将写入自定义日志文件。默认情况下,文件存储在 storage/logs/custom

Logger::info('auth', 'User login from 1.2.3.4');
Logger::warning('audit', 'A record was updated');
Logger::error('exceptions', 'Fatal exception: ');  

如果您希望将日志文件存储在子文件夹中,请使用点表示法

Logger::info('audit.auth', 'User login from 1.2.3.4'); // Logs to `storage/logs/custom/audit/auth.log`

有一个 requestInfo() 方法可用于提供消息的上下文,包括 IP 地址、请求类型/URL、Auth::user()->id 和输入数据

Logger::warning('audit', 'An unusual request', Logger::requestInfo());

在日志过程中发生的致命错误存储在 storage/logs/fatal-logger-errors.log 中。例如,当系统无法发送错误通知时,将在此处记录一条消息。

钩入 Laravel 异常

确保 logger.laravel 配置选项设置为 true,并更新您的错误处理器

// app/Exceptions/Handler.php
use Logger;

public function report(Exception $e)
{
    $class = (new \ReflectionClass($e))->getShortName();
    Logger::error('exceptions', "Exception {$class} | {$e->getMessage()}", Logger::requestInfo());
    return parent::report($e);
}

电子邮件警报

只有当电子邮件发送开启、app.debug 为 false 以及相关错误级别符合要求时,才会触发电子邮件。必须配置 Laravel 邮件系统才能使电子邮件功能正常工作。

数据库处理器

  • 使用 php artisan logger:migrationphp artisan migrate 添加表
  • 使用配置文件设置应将哪些通道记录到数据库
  • 您现在可以使用 Eloquent 模型 DbEntry 查询数据库

变更日志

  • v0.6: 通过配置启用每日日志文件
    • 升级:添加新的配置文件条目: 'daily' => [], 'max_daily' => 7,
  • v0.5: 启用基本文件夹和点表示法子文件夹的配置
    • 升级:添加新的配置文件条目: 'folder' => 'custom',
  • v0.4: 添加数据库处理器。
    • 升级:添加新的配置文件条目。要将日志条目记录到数据库,请添加并运行迁移,然后根据需要更新配置文件设置。
  • v0.3: 删除 Papertrail 处理器,使用配置文件而不是 .env,要求 PHP7。
    • 升级:发布并更新配置文件,确保不要求 Papertrail 处理器。