如何使用 laravel 5.6 和 monolog 通过电子邮件发送错误日志
How to send error log through email with laravel 5.6 and monolog
在 laravel 5.6 文档中说您可以在创建日志时使用与默认驱动程序不同的驱动程序
Creating Monolog Handler Channels
所以我在 config/logging.php 文件
中尝试了以下内容
'channels' => [
'stack' => [
'driver' => 'stack',
'channels' => ['masterLog', 'daily'],
],
'email' => [
'driver' => 'monolog',
'handler' => Monolog\Handler\SwiftMailerHandler::class,
'with' => [
'mailer' => Mail::to('test@test.com')->send(new App\Mail\TestMail()),
],
'level' => 'debug',
],
我用处理程序 Monolog\Handler\SwiftMailerHandler::class 创建了自己的电子邮件通道,我注意到 class 构造函数接收了一个邮件对象,所以我尝试了这个
Mail::to('test@test.com')->send(new App\Mail\TestMail())
但我收到以下错误
RuntimeException
A facade root has not been set.
我正在通过这种方式测试错误
try {
throw new Exception('Test Error');
} catch (\Exception $e) {
Log::stack(['datePayments', 'stack', 'email'])->emergency("user error", ['error' => $e, 'userID'=>Auth::id()]);
}
那么我该如何配置才能使其正常工作?
这里有一个包 https://github.com/designmynight/laravel-log-mailer 可以将邮件驱动程序添加到 Laravel 的 LogManager 中,它应该可以满足您的需求。
在 laravel 5.6 文档中说您可以在创建日志时使用与默认驱动程序不同的驱动程序
Creating Monolog Handler Channels
所以我在 config/logging.php 文件
中尝试了以下内容'channels' => [
'stack' => [
'driver' => 'stack',
'channels' => ['masterLog', 'daily'],
],
'email' => [
'driver' => 'monolog',
'handler' => Monolog\Handler\SwiftMailerHandler::class,
'with' => [
'mailer' => Mail::to('test@test.com')->send(new App\Mail\TestMail()),
],
'level' => 'debug',
],
我用处理程序 Monolog\Handler\SwiftMailerHandler::class 创建了自己的电子邮件通道,我注意到 class 构造函数接收了一个邮件对象,所以我尝试了这个
Mail::to('test@test.com')->send(new App\Mail\TestMail())
但我收到以下错误
RuntimeException A facade root has not been set.
我正在通过这种方式测试错误
try {
throw new Exception('Test Error');
} catch (\Exception $e) {
Log::stack(['datePayments', 'stack', 'email'])->emergency("user error", ['error' => $e, 'userID'=>Auth::id()]);
}
那么我该如何配置才能使其正常工作?
这里有一个包 https://github.com/designmynight/laravel-log-mailer 可以将邮件驱动程序添加到 Laravel 的 LogManager 中,它应该可以满足您的需求。