swisnl / laravel-graylog2
此包已被放弃,不再维护。没有建议的替代包。
将 Laravel 应用程序的错误记录到 Graylog2
0.7.0
2019-01-22 13:33 UTC
Requires
- php: >=5.6.0
- graylog2/gelf-php: ^1.5
- illuminate/http: 5.*
- illuminate/support: 5.*
- monolog/monolog: ^1.20
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.0
- orchestra/testbench: ~3.0
- phpunit/phpunit: ^5.7
README
🚨 此包已被放弃 🚨
我们不再在自己的项目中使用此包,也无法再为其维护花费时间。因此,我们选择将其放弃。您可以根据需要分支我们的代码并维护自己的副本,或使用许多替代方案之一。
安装
- 运行 composer require 来安装此包:
composer require swisnl/laravel-graylog2
- 如果您不喜欢自动发现,请将服务提供者添加到 app.php:
Swis\Graylog2\Graylog2ServiceProvider
- 运行
php artisan vendor:publish
以将配置文件发布到 ./config/graylog2.php。 - 根据需要配置
- 完成!
记录异常
默认设置启用了异常记录。它将 HTTP 请求添加到 GELF 消息中,但不会添加 POST 值。检查 graylog2.log-requests 配置以启用或禁用此行为。
最低日志级别
您可以通过更改配置中的 log_level
值来调整最低日志级别。
消息处理器
处理器为处理器添加了额外的功能。您可以通过修改 AppServiceProvider 来注册处理器。
public function register() { //... Graylog2::registerProcessor(new \Swis\Graylog2\Processor\ExceptionProcessor()); Graylog2::registerProcessor(new \Swis\Graylog2\Processor\RequestProcessor()); Graylog2::registerProcessor(new MyCustomProcessor()); //... }
以下是一些默认可用的处理器
ExceptionProcessor
如果有任何异常数据,则将其添加到消息中。
RequestProcessor
将当前 Laravel 请求添加到消息中。默认情况下,它添加 url、method 和 ip。
自定义处理器
您可以通过实现 Swis\Graylog2\Processor\ProcessorInterface
来定义自定义处理器。结果应类似于以下示例
<?php namespace App\Processors; use Auth; use Swis\Graylog2\Processor\ProcessorInterface; class MyCustomProcessor implements ProcessorInterface { public function process($message, $exception, $context) { $message->setAdditional('domain', config('app.url')); if (Auth::user()) { $message->setAdditional('user_id', Auth::id()); } return $message; } }
不报告异常
在 app/Exceptions/Handler.php
中,您可以定义 $dontReport 数组,其中包含不会报告给记录器的异常类。例如,您可以黑名单 \Illuminate\Database\Eloquent\ModelNotFoundException。有关更多信息,请参阅 Laravel 文档 中的错误。
记录任意数据
您可以通过实例化 Graylog2 类来发送额外的 GELF 消息
// Send default log message Graylog2::log('emergency', 'Dear Sir/Madam, Fire! Fire! Help me!. 123 Cavendon Road. Looking forward to hearing from you. Yours truly, Maurice Moss.', ['facility' => 'ICT']); // Send custom GELF Message $message = new \Gelf\Message(); $message->setLevel('emergency'); $message->setShortMessage('Fire! Fire! Help me!'); $message->setFullMessage('Dear Sir/Madam, Fire! Fire! Help me!. 123 Cavendon Road. Looking forward to hearing from you. Yours truly, Maurice Moss.'); $message->setFacility('ICT'); $message->setAdditional('employee', 'Maurice Moss'); Graylog2::logMessage($message);
故障排除
长消息(或异常)不会在 Graylog2 中显示
您可能需要增加 UDP 传输中的 UDP 数据包的大小(请参阅配置文件)。否则,您可以在 TCP 模式下发送数据包。