Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
100.00% |
1 / 1 |
|
100.00% |
3 / 3 |
CRAP | |
100.00% |
26 / 26 |
| LogServiceProvider | |
100.00% |
1 / 1 |
|
100.00% |
3 / 3 |
4 | |
100.00% |
26 / 26 |
| register | |
100.00% |
1 / 1 |
2 | |
100.00% |
20 / 20 |
|||
| anonymous function | |
100.00% |
1 / 1 |
1 | |
100.00% |
2 / 2 |
|||
| boot | |
100.00% |
1 / 1 |
1 | |
100.00% |
3 / 3 |
|||
| <?php | |
| namespace Eccube\ServiceProvider; | |
| use Eccube\EventListener\LogListener; | |
| use Eccube\Log\Logger; | |
| use Eccube\Log\Monolog\Helper\LogHelper; | |
| use Silex\Application; | |
| use Silex\ServiceProviderInterface; | |
| /** | |
| * Class LogServiceProvider | |
| * | |
| * @package Eccube\ServiceProvider | |
| */ | |
| class LogServiceProvider implements ServiceProviderInterface | |
| { | |
| public function register(Application $app) | |
| { | |
| $app->register(new \Silex\Provider\MonologServiceProvider()); | |
| // Log | |
| $app['eccube.logger'] = $app->share(function ($app) { | |
| return new Logger($app); | |
| }); | |
| // ヘルパー作成 | |
| $app['eccube.monolog.helper'] = $app->share(function ($app) { | |
| return new LogHelper($app); | |
| }); | |
| // ログクラス作成ファクトリー | |
| $app['eccube.monolog.factory'] = $app->protect(function (array $channelValues) use ($app) { | |
| $log = new $app['monolog.logger.class']($channelValues['name']); | |
| // EccubeMonologHelper内でHandlerを設定している | |
| $log->pushHandler($app['eccube.monolog.helper']->getHandler($channelValues)); | |
| return $log; | |
| }); | |
| // チャネルに応じてログを作成し、フロント、管理、プラグイン用のログ出力クラスを作成 | |
| $channels = $app['config']['log']['channel']; | |
| // monologの設定は除外 | |
| unset($channels['monolog']); | |
| foreach ($channels as $channel => $channelValues) { | |
| $app['monolog.logger.'.$channel] = $app->share(function ($app) use ($channelValues) { | |
| return $app['eccube.monolog.factory']($channelValues); | |
| }); | |
| } | |
| // MonologServiceProviderで定義されているmonolog.handlerの置換 | |
| $channelValues = $app['config']['log']['channel']['monolog']; | |
| $app['monolog.name'] = $channelValues['name']; | |
| $app['monolog.handler'] = $app->share(function ($app) use ($channelValues) { | |
| return $app['eccube.monolog.helper']->getHandler($channelValues); | |
| }); | |
| $app['eccube.monolog.listener'] = $app->share(function () use ($app) { | |
| return new LogListener($app['eccube.logger']); | |
| }); | |
| $app['listener.requestdump'] = $app->share(function ($app) { | |
| return new \Eccube\EventListener\RequestDumpListener($app); | |
| }); | |
| } | |
| public function boot(Application $app) | |
| { | |
| $app['dispatcher']->addSubscriber($app['listener.requestdump']); | |
| $app['dispatcher']->addSubscriber($app['eccube.monolog.listener']); | |
| } | |
| } |