dotkernel / dot-errorhandler
中间件应用的错误日志处理器
4.0.0
2024-08-30 08:01 UTC
Requires
- php: ~8.2.0 || ~8.3.0
- dotkernel/dot-log: ^4.0.2
- laminas/laminas-diactoros: ^3.3
- laminas/laminas-stratigility: ^3.11
- mezzio/mezzio: ^3.19
- psr/http-message: ^1.0 || ^2.0
- psr/http-server-middleware: ^1.0
Requires (Dev)
- laminas/laminas-coding-standard: ^2.5
- mikey179/vfsstream: ^1.6.7
- phpunit/phpunit: ^10.5
- vimeo/psalm: ^5.22
README
DotKernel的错误日志处理器
添加错误处理器
- 添加composer包
composer require dotkernel/dot-errorhandler
-
添加配置提供者
- 在
config/config.php中添加\Dot\ErrorHandler\ConfigProvider - 在
config/pipeline.php中添加\Dot\ErrorHandler\ErrorHandlerInterface::class- 该接口用作别名,以将所有错误处理相关配置保存在一个文件中
- 重要提示 此错误处理器之后不应有其他错误处理器(只有之前)因为其他错误处理器将捕获错误,导致 dot-errorhandler 无法捕获任何错误,除非您有特定于错误的处理器,否则我们建议只使用一个错误处理器
- 在
-
按照以下方式配置错误处理器
config/autoload/error-handling.global.php
<?php use Dot\ErrorHandler\ErrorHandlerInterface; use Dot\ErrorHandler\LogErrorHandler; use Dot\ErrorHandler\ErrorHandler; return [ 'dependencies' => [ 'aliases' => [ ErrorHandlerInterface::class => LogErrorHandler::class, ] ], 'dot-errorhandler' => [ 'loggerEnabled' => true, 'logger' => 'dot-log.default_logger' ] ];
默认日志器的配置示例可以在 config/log.global.php.dist 中找到。
在声明 ErrorHandlerInterface 别名时,您可以选择是否记录
- 要记录,请使用
LogErrorHandler - 对于简单的 Zend Expressive 处理器,请使用
ErrorHandler
Dot\ErrorHandler\ErrorHandler 类与 Zend Expressive 错误处理类相同,唯一的区别是去掉了 final 语句,以便进行扩展。
Dot\ErrorHandler\LogErrorHandler 类是添加了日志支持的 Dot\ErrorHandler\ErrorHandler。
注意:LogErrorHandler 和 ErrorHandler 都在包的 ConfigProvider 中声明了工厂。如果需要自定义 ErrorHandler,必须在配置中声明工厂,如示例所示。
示例
<?php use Dot\ErrorHandler\ErrorHandlerInterface; use Custom\MyErrorHandler; use Custom\MyErrorHandlerFactory; return [ 'dependencies' => [ 'factories' => [ MyErrorHandler::class => MyCustomHandlerFactory::class, ], 'aliases' => [ ErrorHandlerInterface::class => MyErrorHandler::class, ] ], 'dot-errorhandler' => [ 'loggerEnabled' => true, 'logger' => 'dot-log.default_logger' ] ];
配置示例可以在本项目的 config 目录中找到。