<?php
namespace App\Core\Service;
use Monolog\Logger as MonologLogger;
use Monolog\Handler\StreamHandler;
use App\Config\Main;
class Logger
{
    private static $logger;

    public static function getLogger()
    {
        if (!self::$logger) {
            $logDir = Main::getLogPath();
            if (!is_dir($logDir)) {
                mkdir($logDir, 0777, true);
                echo "Log directory does not exist. Creating: $logDir\n";die;
            }

            $logFile = $logDir . '/' . date('Y-m-d') . '.log';

            self::$logger = new MonologLogger('app');
            self::$logger->pushHandler(new StreamHandler($logFile, MonologLogger::DEBUG));
        }

        return self::$logger;
    }

    public static function info($message, array $context = [])
    {
        self::getLogger()->info($message, $context);
    }

    public static function error($message, array $context = [])
    {
        self::getLogger()->error($message, $context);
    }

    public static function debug($message, array $context = [])
    {
        self::getLogger()->debug($message, $context);
    }

    public static function warning($message, array $context = [])
    {
        self::getLogger()->warning($message, $context);
    }
}
