/**
  * Setter function for boolean type.
  */
 protected function setBoolean($property, $value)
 {
     try {
         $this->{$property} = LoggerOptionConverter::toBooleanEx($value);
     } catch (Exception $ex) {
         $value = var_export($value, true);
         $this->warn("Invalid value given for '{$property}' property: [{$value}]. Expected a boolean value. Property not changed.");
     }
 }
 /**
  * Configures a logger. 
  * 
  * @param Logger $logger The logger to configure
  * @param array $config Logger configuration options.
  */
 private function configureLogger(Logger $logger, $config)
 {
     $loggerName = $logger->getName();
     // Set logger level
     if (isset($config['level'])) {
         $level = LoggerLevel::toLevel($config['level']);
         if (isset($level)) {
             $logger->setLevel($level);
         } else {
             $this->warn("Invalid level value [{$config['level']}] specified for logger [{$loggerName}]. Ignoring level definition.");
         }
     }
     // Link appenders to logger
     if (isset($config['appenders'])) {
         foreach ($config['appenders'] as $appenderName) {
             if (isset($this->appenders[$appenderName])) {
                 $logger->addAppender($this->appenders[$appenderName]);
             } else {
                 $this->warn("Nonexistnant appender [{$appenderName}] linked to logger [{$loggerName}].");
             }
         }
     }
     // Set logger additivity
     if (isset($config['additivity'])) {
         try {
             $additivity = LoggerOptionConverter::toBooleanEx($config['additivity'], null);
             $logger->setAdditivity($additivity);
         } catch (Exception $ex) {
             $this->warn("Invalid additivity value [{$config['additivity']}] specified for logger [{$loggerName}]. Ignoring additivity setting.");
         }
     }
 }
 /**
  * Check that various boolean equivalents from ini file convert properly 
  * to boolean. 
  */
 public function testBooleanValues()
 {
     $values = parse_ini_file(PHPUNIT_CONFIG_DIR . '/adapters/ini/values.ini');
     $actual = LoggerOptionConverter::toBooleanEx($values['unquoted_true']);
     self::assertTrue($actual);
     $actual = LoggerOptionConverter::toBooleanEx($values['unquoted_yes']);
     self::assertTrue($actual);
     $actual = LoggerOptionConverter::toBooleanEx($values['unquoted_false']);
     self::assertFalse($actual);
     $actual = LoggerOptionConverter::toBooleanEx($values['unquoted_no']);
     self::assertFalse($actual);
     $actual = LoggerOptionConverter::toBooleanEx($values['quoted_true']);
     self::assertTrue($actual);
     $actual = LoggerOptionConverter::toBooleanEx($values['quoted_false']);
     self::assertFalse($actual);
     $actual = LoggerOptionConverter::toBooleanEx($values['unquoted_one']);
     self::assertTrue($actual);
     $actual = LoggerOptionConverter::toBooleanEx($values['unquoted_zero']);
     self::assertFalse($actual);
 }
 /**
  * Test fail on invalid string.
  * @expectedException LoggerException
  * @expectedExceptionMessage Given value ['foo'] cannot be converted to boolean.
  */
 public function testToBooleanFailure2()
 {
     LoggerOptionConverter::toBooleanEx('foo');
 }