camspiers / silverstripe-loggerbridge
提供PSR-3日志记录器(如monolog)和SilverStripe之间的桥梁
1.0.1
2018-04-25 17:11 UTC
Requires
- composer/installers: ~1.0
- filp/whoops: ^2.0
- monolog/monolog: ^1.7
- silverstripe/framework: ^3.1
Requires (Dev)
- phpunit/phpunit: ~3.7
- symfony/class-loader: ~2.3
README
提供在SilverStripe 3.x中轻松使用PSR-3
日志记录器(如monolog)的功能。在SilverStripe 4.x及更高版本中,PSR-3
支持已内置到核心系统中,因此该模块不再需要。
安装(需要composer)
$ composer require camspiers/silverstripe-loggerbridge:dev-master
使用方法
-
在您的
mysite
中创建一个配置文件,例如 "mysite/_config/logging.yml" -
设置一个
PSR-3
日志记录器服务并将其添加到LoggerBridge
构造函数Injector: Monolog: class: Monolog\Logger constructor: 0: App 1: - '%$StreamHandler' StreamHandler: class: Monolog\Handler\StreamHandler constructor: 0: '../../error.log' LoggerBridge: class: Camspiers\LoggerBridge\LoggerBridge constructor: 0: '%$Monolog'
更改开发中错误显示的方式
默认情况下,Logger Bridge使用Whoops
来显示错误和异常。您可以通过在yml中添加以下内容来切换到使用SilverStripe错误显示:
Injector:
LoggerBridge:
properties:
ErrorReporter: '%$LoggerBridgeDebugErrorReporter'
高级样式设置
此设置提供以下功能:
- 通过raven客户端(
composer require raven/raven
)将日志记录到Sentry服务器- 为
live
、test
和dev
使用一个Sentry项目
- 为
- 对于错误级别
error
及以上的错误记录到文件 - 在环境
dev
下记录到Chrome Logger- 错误将在Chrome控制台显示,而不是在网页上显示
- 在环境
dev
下记录到FirePHP- 错误将在Firebug控制台显示,而不是在网页上显示
- 同时记录峰值内存使用情况和错误
--- Except: environment: live --- Injector: Raven: class: Raven_Client constructor: 0: http://someraven.url/1 Monolog: class: Monolog\Logger constructor: 0: App 1: - '%$RavenHandler' - '%$StreamHandler' - '%$ChromePHPHandler' - '%$FirePHPHandler' 2: - '%$MemoryPeakUsageProcessor' --- Only: environment: live --- Injector: Raven: class: Raven_Client constructor: 0: http://someraven.url/1 Monolog: class: Monolog\Logger constructor: 0: App 1: - '%$RavenHandler' - '%$StreamHandler' 2: - '%$MemoryPeakUsageProcessor' --- Name: logging --- Injector: LoggerBridge: class: Camspiers\LoggerBridge\LoggerBridge constructor: 0: '%$Monolog' 1: false RavenHandler: class: Monolog\Handler\RavenHandler constructor: 0: '%$Raven' StreamHandler: class: Monolog\Handler\StreamHandler constructor: 0: '../../error.log' 1: 400 ChromePHPHandler: class: Monolog\Handler\ChromePHPHandler FirePHPHandler: class: Monolog\Handler\FirePHPHandler MemoryPeakUsageProcessor: class: Monolog\Processor\MemoryPeakUsageProcessor
尽可能早地附加日志记录器
SilverStripe目前无法提供替换默认Debug
错误处理程序的方法,在数据库连接等之前。但以下补丁将尽可能早地使用Logger Bridge。
要应用补丁,请从3.1.x-dev
安装的framework
目录运行以下命令。
patch -p1 < framework.patch
framework.patch
diff --git a/core/Core.php b/core/Core.php index bc3f583..4c9f59e 100644 --- a/core/Core.php +++ b/core/Core.php @@ -131,7 +131,7 @@ if(Director::isLive()) { /** * Load error handlers */ -Debug::loadErrorHandlers(); +Injector::inst()->get('LoggerBridge')->registerGlobalHandlers(); ///////////////////////////////////////////////////////////////////////////////
单元测试
Logger Bridge具有良好的单元测试覆盖率。要运行单元测试:
$ composer install --dev --prefer-dist
$ phpunit
##许可协议
SilverStripe Logger Bridge是在MIT许可协议下发布的