Skip to content
Snippets Groups Projects
Commit 2bb34bc1 authored by Tim van Dijen's avatar Tim van Dijen
Browse files

Fix Logger

parent c44b21d3
No related branches found
No related tags found
No related merge requests found
...@@ -13,10 +13,15 @@ namespace SimpleSAML; ...@@ -13,10 +13,15 @@ namespace SimpleSAML;
class Logger class Logger
{ {
/** /**
* @var \SimpleSAML\Logger\LoggingHandlerInterface|false * @var \SimpleSAML\Logger\LoggingHandlerInterface
*/ */
private static $loggingHandler; private static $loggingHandler;
/**
* @var bool
*/
private static $initializing = false;
/** /**
* @var integer|null * @var integer|null
*/ */
...@@ -393,6 +398,9 @@ class Logger ...@@ -393,6 +398,9 @@ class Logger
register_shutdown_function([self::class, 'shutdown']); register_shutdown_function([self::class, 'shutdown']);
self::$shutdownRegistered = true; self::$shutdownRegistered = true;
} }
// Set initializing to true > all went well!
self::$initializing = true;
} }
...@@ -403,9 +411,6 @@ class Logger ...@@ -403,9 +411,6 @@ class Logger
*/ */
private static function createLoggingHandler($handler = null) 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 // a set of known logging handlers
$known_handlers = [ $known_handlers = [
'syslog' => 'SimpleSAML\Logger\SyslogLoggingHandler', 'syslog' => 'SimpleSAML\Logger\SyslogLoggingHandler',
...@@ -439,6 +444,7 @@ class Logger ...@@ -439,6 +444,7 @@ class Logger
} }
$handler = $known_handlers[$handler]; $handler = $known_handlers[$handler];
} }
/** @var \SimpleSAML\Logger\LoggingHandlerInterface */ /** @var \SimpleSAML\Logger\LoggingHandlerInterface */
self::$loggingHandler = new $handler($config); self::$loggingHandler = new $handler($config);
...@@ -455,20 +461,20 @@ class Logger ...@@ -455,20 +461,20 @@ class Logger
*/ */
private static function log($level, $string, $statsLog = false) private static function log($level, $string, $statsLog = false)
{ {
if (self::$loggingHandler === false) { if (self::$initializing === false) {
// some error occurred while initializing logging // some error occurred while initializing logging
self::defer($level, $string, $statsLog); self::defer($level, $string, $statsLog);
return; return;
} elseif (php_sapi_name() === 'cli' || defined('STDIN')) { } elseif (php_sapi_name() === 'cli' || defined('STDIN')) {
// we are being executed from the CLI, nowhere to log // we are being executed from the CLI, nowhere to log
if (is_null(self::$loggingHandler)) { if (!isset(self::$loggingHandler)) {
self::createLoggingHandler(\SimpleSAML\Logger\StandardErrorLoggingHandler::class); self::createLoggingHandler(\SimpleSAML\Logger\StandardErrorLoggingHandler::class);
} }
$_SERVER['REMOTE_ADDR'] = "CLI"; $_SERVER['REMOTE_ADDR'] = "CLI";
if (self::$trackid === self::NO_TRACKID) { if (self::$trackid === self::NO_TRACKID) {
self::$trackid = 'CL'.bin2hex(openssl_random_pseudo_bytes(4)); self::$trackid = 'CL'.bin2hex(openssl_random_pseudo_bytes(4));
} }
} elseif (self::$loggingHandler === null) { } elseif (!isset(self::$loggingHandler)) {
// Initialize logging // Initialize logging
self::createLoggingHandler(); self::createLoggingHandler();
self::flush(); self::flush();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment