コード例 #1
0
ファイル: Logger.php プロジェクト: SysBind/simplesamlphp
 private static function createLoggingHandler($handler = null)
 {
     // set to false to indicate that it is being initialized
     self::$loggingHandler = false;
     // a set of known logging handlers
     $known_handlers = array('syslog' => 'SimpleSAML\\Logger\\SyslogLoggingHandler', 'file' => 'SimpleSAML\\Logger\\FileLoggingHandler', 'errorlog' => 'SimpleSAML\\Logger\\ErrorLogLoggingHandler');
     // get the configuration
     $config = \SimpleSAML_Configuration::getInstance();
     assert($config instanceof \SimpleSAML_Configuration);
     // setting minimum log_level
     self::$logLevel = $config->getInteger('logging.level', self::INFO);
     // get the metadata handler option from the configuration
     if (is_null($handler)) {
         $handler = $config->getString('logging.handler', 'syslog');
     }
     if (class_exists($handler)) {
         if (!in_array('SimpleSAML\\Logger\\LoggingHandlerInterface', class_implements($handler))) {
             throw new \Exception("The logging handler '{$handler}' is invalid.");
         }
     } else {
         $handler = strtolower($handler);
         if (!array_key_exists($handler, $known_handlers)) {
             throw new \Exception("Invalid value for the 'logging.handler' configuration option. Unknown handler '" . $handler . "''.");
         }
         $handler = $known_handlers[$handler];
     }
     self::$loggingHandler = new $handler($config);
     self::$format = $config->getString('logging.format', self::$format);
     self::$loggingHandler->setLogFormat(self::$format);
 }