【问题标题】:Unable to write Silverstripe 4 error log to email无法将 Silverstripe 4 错误日志写入电子邮件
【发布时间】:2020-01-30 08:43:27
【问题描述】:

我已将这些代码放入 .yml 文件,但我仍然没有收到带有错误的电子邮件

SilverStripe\Core\Injector\Injector:
    Psr\Log\LoggerInterface:
      calls:
        MailHandler: [ pushHandler, [ '%$MailHandler' ] ]
    MailHandler:
      class: Monolog\Handler\NativeMailerHandler
      constructor:
        - abc@sss.com
        - There was an error on your test site
        - abc@sss.com
        - error
      properties:
        ContentType: text/html
        Formatter: %$SilverStripe\Logging\DetailedErrorFormatter

【问题讨论】:

    标签: php error-handling silverstripe-4


    【解决方案1】:

    你没有提到你使用的是哪个版本的 Silverstripe 4,所以我假设它是最新的次要版本之一。

    从 4.4.0 开始(我认为) Silverstripe 不会写入默认的 LoggerInterface 处理程序以进行核心错误处理,而是允许您将其用于自定义应用程序日志记录。如果您是 4.4 以后的版本,并且想要将应用程序错误发送到您的邮件处理程序,则需要使用 Psr\Log\LoggerInterface.errorhandler 实例:

    SilverStripe\Core\Injector\Injector:
      Psr\Log\LoggerInterface.errorhandler:
        ...    
    

    您还应该确保您的configured your email driver 正确无误。

    【讨论】:

    • 我用的是 silverstripe 4 版本
    • 你可以通过运行composer show silverstripe/framework找到你正在使用的版本
    • 版本:* 4.1.2
    • 我已经把这行放在下面,但错误仍然没有发送到电子邮件中。我是否必须编辑 .env 文件或 _config.php Psr\Log\LoggerInterface.errorhandler:
    • 好的,您使用的是旧版本的 Silverstripe 4,因此您的配置是正确的。其他电子邮件是否可以在您的系统中使用?您是否阅读了我链接到的用于配置您的电子邮件驱动程序的文档?
    猜你喜欢
    • 1970-01-01
    • 2016-11-12
    • 2010-12-14
    • 2017-06-16
    • 1970-01-01
    • 2015-07-02
    • 2017-02-18
    • 2013-12-24
    • 1970-01-01
    相关资源
    最近更新 更多