desthercz / logger
Laravel 5+ 的日志包
v0.11.1
2024-09-09 09:55 UTC
Requires
- php: ^7.3|^8.0
- laravel/framework: ^5.1|^6.0|^7.0|^8.0|^9.0|^10.0|^11.0
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:migration
和php artisan migrate
添加表 - 使用配置文件设置应将哪些通道记录到数据库
- 您现在可以使用 Eloquent 模型
DbEntry
查询数据库
变更日志
- v0.6: 通过配置启用每日日志文件
- 升级:添加新的配置文件条目:
'daily' => [], 'max_daily' => 7,
- 升级:添加新的配置文件条目:
- v0.5: 启用基本文件夹和点表示法子文件夹的配置
- 升级:添加新的配置文件条目:
'folder' => 'custom',
- 升级:添加新的配置文件条目:
- v0.4: 添加数据库处理器。
- 升级:添加新的配置文件条目。要将日志条目记录到数据库,请添加并运行迁移,然后根据需要更新配置文件设置。
- v0.3: 删除 Papertrail 处理器,使用配置文件而不是 .env,要求 PHP7。
- 升级:发布并更新配置文件,确保不要求 Papertrail 处理器。