<?php

class Debug
{
    /**
     * Convenience function for Configuration::getConfig('system', 'enable_debug_mode')
     */
    public static function isEnabled(): bool
    {
        $ip = $_SERVER['REMOTE_ADDR'] ?? 'x.y.z.1';
        $enableDebugMode = Configuration::getConfig('system', 'enable_debug_mode');
        $debugModeWhitelist = Configuration::getConfig('system', 'debug_mode_whitelist') ?: [];
        if ($enableDebugMode && ($debugModeWhitelist === [] || in_array($ip, $debugModeWhitelist))) {
            return true;
        }
        return false;
    }

    public static function log($message)
    {
        $e = new \Exception();
        $trace = trace_from_exception($e);
        // Drop the current frame
        array_pop($trace);
        $lastFrame = $trace[array_key_last($trace)];
        $text = sprintf('%s(%s): %s', $lastFrame['file'], $lastFrame['line'], $message);

        $logger = RssBridge::getLogger();
        $logger->debug($text);
    }
}