public function register(Application $app) { //parent service provider activation $app->register(new MonologServiceProvider()); //define default options $app['monolog.fingerscrossed.level'] = Logger::NOTICE; $app['monolog.fingerscrossed'] = true; $app['monolog.rotatingfile'] = false; $app['monolog.rotatingfile.maxfiles'] = 10; $app['monolog.fingerscrossed.handler'] = function () use($app) { $level = SuperMonologServiceProvider::translateLevel($app['monolog.level']); return new StreamHandler($app['monolog.logfile']); }; //main override function $app['monolog.handler'] = function () use($app) { //setup level $Activationlevel = SuperMonologServiceProvider::translateLevel($app['monolog.fingerscrossed.level']); $level = SuperMonologServiceProvider::translateLevel($app['monolog.level']); //debug mode if ($app['debug']) { $handler = new StreamHandler($app['monolog.logfile'], $level); $handler->setFormatter(new \Ibsciss\Monolog\Formatter\LineFormatter()); return $handler; } //if rotatingfile enable : figerscrossedHandler override if ($app['monolog.rotatingfile']) { $app['monolog.fingerscrossed.handler'] = new RotatingFileHandler($app['monolog.logfile'], $app['monolog.rotatingfile.maxfiles'], $level); } //apply default strategy $handler = $app['monolog.fingerscrossed'] ? new FingersCrossedHandler($app['monolog.fingerscrossed.handler'], $Activationlevel) : $app['monolog.fingerscrossed.handler']; $handler->setFormatter(new \Ibsciss\Monolog\Formatter\LineFormatter()); return $handler; }; }
public function testTranslateLevel() { $this->assertEquals(300, SuperMonologServiceProvider::translateLevel('warning')); $this->assertEquals(100, SuperMonologServiceProvider::translateLevel(100)); $this->setExpectedException('InvalidArgumentException'); SuperMonologServiceProvider::translateLevel('test'); }