' . ' {' . $function . '} ' . (($comment == '')?'':($comment . PHP_EOL)) . $message . PHP_EOL; } public static function getTimestamp() { $originalTime = microtime(true); $micro = sprintf("%06d", ($originalTime - floor($originalTime)) * 1000000); $date = new DateTime(date('Y-m-d H:i:s.' . $micro, $originalTime)); return $date->format(self::CUSTOM_DATE_FORMAT); } /** * @param $function * @param $message * @param $order_id */ private static function writeToLog($function, $message, $order_id, $logFile, $comment) { if (!file_exists($logFile)) { fopen($logFile, 'a'); }; if (!self::$logFile) { throw new RuntimeException('Cannot open' . $logFile . ' file!'); } file_put_contents($logFile, self::formatMessage($message, $order_id, $function, $comment), FILE_APPEND); } public static function runtimeErrorHandler($type, $message, $file, $line) { switch ($type) { case E_ERROR: self::addLog('error', $type . ' runtimeError in ' . $file, 'In line: ' . $line . ' with message: ' . $message); break; case E_WARNING: self::addLog('error', $type . ' runtimeError in ' . $file, 'In line: ' . $line . ' with message: ' . $message); break; case E_NOTICE: self::addLog('error', $type . ' runtimeError in ' . $file, 'In line: ' . $line . ' with message: ' . $message); break; default: self::addLog('error', $type . ' runtimeError in ' . $file, 'In line: ' . $line . ' with message: ' . $message); break; } return true; } }