Php 无法将Silverstripe 4错误日志写入电子邮件

Php 无法将Silverstripe 4错误日志写入电子邮件,php,error-handling,silverstripe-4,Php,Error Handling,Silverstripe 4,我已经把这些代码放到了.yml文件中,我仍然没有收到有错误的电子邮件 SilverStripe\Core\Injector\Injector: Psr\Log\LoggerInterface: calls: MailHandler: [ pushHandler, [ '%$MailHandler' ] ] MailHandler: class: Monolog\Handler\NativeMailerHandler constr

我已经把这些代码放到了.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

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

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

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

您还应该确保您的操作正确。

我使用了silverstripe 4版本通过运行composer show silverstripe/frameworkversions,您可以找到您正在使用的版本:*4.1.2我已经在下面写了一行,但电子邮件中仍然没有出现错误。我是否必须编辑.env文件或_config.php Psr\Log\LoggerInterface.errorhandler:好的,您使用的是旧版本的Silverstripe 4,因此您已有的配置是正确的。其他电子邮件在您的系统中工作吗?您是否阅读了我为配置电子邮件驱动程序而链接的文档?