如何使用laravel 5.6和monolog通过电子邮件发送错误日志

时间:2018-05-20 18:05:17

标签: swiftmailer laravel-5.6 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创建了我自己的电子邮件频道,我注意到类构造函数重新编写了一个邮件程序对象,所以我试试这个

邮件::到('test@test.com') - >发送(新的App \ Mail \ TestMail())

但是我收到以下错误

  

的RuntimeException   尚未设置外观根。

我正在通过这种方式测试错误

 try {
        throw new Exception('Test Error');
    } catch (\Exception $e) {
        Log::stack(['datePayments', 'stack', 'email'])->emergency("user error", ['error' => $e, 'userID'=>Auth::id()]);
    }

那么如何配置它以使其有效?

1 个答案:

答案 0 :(得分:2)

这里https://github.com/designmynight/laravel-log-mailer处有一个软件包,可以在Laravel的LogManager中添加一个邮件驱动程序,该软件包应该可以完全满足您的需求。