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');
 }