如何扩展 laravel 记录器?
How to extend laravel logger?
我已经为不同级别的日志记录创建了不同的文件,例如 Log::info、Log::error 等。现在我还想仅在出现错误时向 slack 发送消息。我也通过在 app/bootstrap.php
中编写以下代码来完成此操作
$app->configureMonologUsing( function($monolog) {
$slackHandler = new Monolog\Handler\SlackHandler(env('SLACK_TOKEN'), env('SLACK_CHANNEL'), 'Monolog', true, null, Monolog\Logger::ERROR);
$monolog->pushHandler($slackHandler);
});
但它已经覆盖了默认记录器,现在只有 slack 记录器在工作并且没有日志添加到 storage/logs/ 文件夹
文档对这到底做了什么非常模糊,但看起来 configureMonologUsing
将 Monolog 配置为仅使用您专门添加到它的处理程序。这意味着从未添加 Laravel 设置为记录到 laravel.log 文件的处理程序(我相信 StreamHandler
)。
我建议不要使用它并将此代码放入您的 AppServiceProvider
中,这将添加新的处理程序,同时保留所有默认处理程序 Laravel 喜欢添加...
$monolog = \Log::getMonolog();
$slackHandler = new \Monolog\Handler\SlackHandler(env('SLACK_TOKEN'), env('SLACK_CHANNEL'), 'Monolog', true, null, Monolog\Logger::ERROR);
$monolog->pushHandler($slackHandler);
我已经为不同级别的日志记录创建了不同的文件,例如 Log::info、Log::error 等。现在我还想仅在出现错误时向 slack 发送消息。我也通过在 app/bootstrap.php
$app->configureMonologUsing( function($monolog) {
$slackHandler = new Monolog\Handler\SlackHandler(env('SLACK_TOKEN'), env('SLACK_CHANNEL'), 'Monolog', true, null, Monolog\Logger::ERROR);
$monolog->pushHandler($slackHandler);
});
但它已经覆盖了默认记录器,现在只有 slack 记录器在工作并且没有日志添加到 storage/logs/ 文件夹
文档对这到底做了什么非常模糊,但看起来 configureMonologUsing
将 Monolog 配置为仅使用您专门添加到它的处理程序。这意味着从未添加 Laravel 设置为记录到 laravel.log 文件的处理程序(我相信 StreamHandler
)。
我建议不要使用它并将此代码放入您的 AppServiceProvider
中,这将添加新的处理程序,同时保留所有默认处理程序 Laravel 喜欢添加...
$monolog = \Log::getMonolog();
$slackHandler = new \Monolog\Handler\SlackHandler(env('SLACK_TOKEN'), env('SLACK_CHANNEL'), 'Monolog', true, null, Monolog\Logger::ERROR);
$monolog->pushHandler($slackHandler);