0 && sizeof($context) >= $i) { $paramValue = $context[$i - 1]; if (!is_array($paramValue)) { $result_message .= $paramValue; } else { $result_message .= json_encode($paramValue); } } $messagePart = $split_message[$i]; $result_message .= $messagePart; } if (strpos($message, '{}') === false && is_array($context) && !empty($context)) { $strContext = json_encode($context); $result_message = $message . " {$strContext}"; } return self::getTimestamp() . ' ' . substr(hash('sha256', $_SERVER['REMOTE_ADDR']), 0, 32) . ' ' . Tools::strtoupper($type) . ' ' . $result_message . PHP_EOL; } public static function getTimestamp() { $now = microtime(true); $micro = sprintf('%06d', ($now - floor($now)) * 1000000); return (new DateTime(date('Y-m-d H:i:s.' . $micro, $now)))->format('Y-m-d G:i:s.u'); } public static function info($message, $context = []) { self::log(self::INFO, $message, $context); } public static function debug($message, $context = []) { self::log(self::DEBUG, $message, $context); } public static function error($message, $context = []) { self::log(self::ERROR, $message, $context); } public static function warning($message, $context = []) { self::log(self::WARNING, $message, $context); } }