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