portavice/laravel-log-errors-to-mail

添加一个日志通道,通过电子邮件将日志消息发送到配置的电子邮件地址

v1.0.0 2024-05-29 14:02 UTC

This package is auto-updated.

Last update: 2024-08-29 14:51:07 UTC


README

MIT Licensed

此包添加了一个基本的日志通道,使用Laravel邮件传输将特定错误级别以上的消息作为电子邮件发送到预配置的收件人。

先决条件

  • 已配置默认的Laravel邮件驱动程序

安装

composer require portavice/laravel-log-errors-to-mail

配置

要将您的Laravel应用程序配置为使用日志记录器,您应该在您的logging.php配置文件中创建一个日志通道。

例如,一个记录到默认堆栈并发送电子邮件通知的堆栈通道

return [
    // ...
    'channels' => [
        // ...    

        'stack_with_email' => [
            'driver' => 'stack',
            'channels' => ['stack', 'log_errors_to_mail'],
            'ignore_exceptions' => false,
        ],
    ],
    // ...    
];

然后您可以在您的.env文件中设置日志通道,或在logging.php中将它设置为默认日志通道。

LOG_CHANNEL=stack_with_email

自定义

此库通过环境变量提供了对默认的laravel_mail_logger通道的一些自定义。

# defaults
# the name of the laravel mailer to use when sending email. (blank by default)
 # if omitted, uses the global default mailer configured for your laravel application 
LOG_ERROR_TO_MAIL_MAILER=
# recipient of the error emails (blank by default) 
LOG_ERROR_TO_MAIL_TO=
# deduplicate error emails (on by default)
LOG_ERROR_TO_MAIL_DEDUPLICATE=true
# minimum PSR log level to send emails for (error by default) 
LOG_ERROR_TO_MAIL_LEVEL=error

您还可以使用artisan vendor:publish命令发布此包的配置。

$ php artisan vendor:publish --tag=laravel-log-errors-to-mail

选择邮件传输

默认情况下,应用程序使用您Laravel应用程序的默认邮件驱动程序。

要更改使用的驱动程序,您可以发布日志记录器配置并将“laravel_log_errors_to_mail.email_driver”选项更改为所需的邮件驱动程序名称。

邮件驱动程序应该扩展\Illuminate\Mail\Mailer类,并从Mailer::getSymfonyTransport()方法返回一个有效的\Symfony\Component\Mailer\Transport\TransportInterface实例。

已知问题

使用 'log' 传输的邮件驱动程序

使用\Illuminate\Mail\Transport\LogTransport传输的邮件驱动程序不受支持,并且EmailHandler将回退到NoopHandler

然而,这种自动回退当前仅在所选驱动程序直接使用LogTransport时才有效。如果您例如设置了一个包含LogTransport邮件驱动程序的RoundRobinTransport,它最终会陷入无限递归循环。