SimpleSAML\Logger::log PHP Method

log() private static method

private static log ( $level, $string, $statsLog = false )
    private static function log($level, $string, $statsLog = false)
    {
        if (self::$loggingHandler === false) {
            // some error occurred while initializing logging
            self::defer($level, $string, $statsLog);
            return;
        } elseif (php_sapi_name() === 'cli' || defined('STDIN')) {
            // we are being executed from the CLI, nowhere to log
            if (is_null(self::$loggingHandler)) {
                self::createLoggingHandler('SimpleSAML\\Logger\\StandardErrorLoggingHandler');
            }
            $_SERVER['REMOTE_ADDR'] = "CLI";
            if (self::$trackid === self::NO_TRACKID) {
                self::$trackid = 'CL' . bin2hex(openssl_random_pseudo_bytes(4));
            }
        } elseif (self::$loggingHandler === null) {
            // Initialize logging
            self::createLoggingHandler();
            if (!empty(self::$earlyLog)) {
                // output messages which were logged before we properly initialized logging
                foreach (self::$earlyLog as $msg) {
                    self::log($msg['level'], $msg['string'], $msg['statsLog']);
                }
            }
        }
        if (self::$captureLog) {
            $ts = microtime(true);
            $msecs = (int) (($ts - (int) $ts) * 1000);
            $ts = gmdate('H:i:s', $ts) . sprintf('.%03d', $msecs) . 'Z';
            self::$capturedLog[] = $ts . ' ' . $string;
        }
        if (self::$logLevel >= $level || $statsLog) {
            if (is_array($string)) {
                $string = implode(",", $string);
            }
            $formats = array('%trackid', '%msg', '%srcip', '%stat');
            $replacements = array(self::$trackid, $string, $_SERVER['REMOTE_ADDR']);
            $stat = '';
            if ($statsLog) {
                $stat = 'STAT ';
            }
            array_push($replacements, $stat);
            if (self::$trackid === self::NO_TRACKID && !self::$shuttingDown) {
                // we have a log without track ID and we are not still shutting down, so defer logging
                self::defer($level, $string, $statsLog);
                return;
            } elseif (self::$trackid === self::NO_TRACKID) {
                // shutting down without a track ID, prettify it
                array_shift($replacements);
                array_unshift($replacements, 'N/A');
            }
            // we either have a track ID or we are shutting down, so just log the message
            $string = str_replace($formats, $replacements, self::$format);
            self::$loggingHandler->log($level, $string);
        }
    }