首页 > 解决方案 > 无法将 Silverstripe 4 错误日志写入电子邮件

问题描述

我已将这些代码放入 .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

标签: phperror-handlingsilverstripe-4

解决方案


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

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

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

您还应该确保您已正确配置您的电子邮件驱动程序


推荐阅读