====== addLogToSQLite ====== **Каноническая страница:** [[https://humanemulator.net/objects/SYSTEM/logger/sqlite/addLogToSQLite.php|https://humanemulator.net/objects/SYSTEM/logger/sqlite/addLogToSQLite.php]] [[objects:start|← Objects]] ---- Справка Human Emulator logger: addLogToSQLite logger"; ?> addLogToSQLite addLogToSQLite($logLevelCode,$message,$dataString,$caller); - if (!LogLevel::tryFrom($logLevelCode)) throw new InvalidArgumentException("Invalid log level code: $logLevelCode"); $logLevelName = LogLevel::getName($logLevelCode); // Get LogLevel title $loglevelTitle = match ($this->localizationCode) { 'ru' => $this->logLevelNameLocDictionaryRu[$logLevelName], 'tr' => $this->logLevelNameLocDictionaryTr[$logLevelName], default => $logLevelName, }; /** DateTime now formatted */ $dateTimeFormattedString = date($this->dateTimeFormat); /** Is warning message */ $isWarningText = $logLevelCode === LogLevel::WARNING; /** Is error or critical message? */ $isErrorText = $logLevelCode === LogLevel::ERROR // Check error message on text if (!$isErrorText) { $messageToLower = mb_strtolower($message); if (mb_strpos($messageToLower, 'error') !== false) $isErrorText = true; else if (mb_strpos($messageToLower, "ошибка") !== false) $isErrorText = true; else if (mb_strpos($messageToLower, "hata") !== false) $isErrorText = true; } /** Is debug message? */ $isDebugText = $logLevelCode === LogLevel::DEBUG; // Log file extension $logFileExt = pathinfo($this->logFilePath, PATHINFO_EXTENSION); // Многострочная лог строка? $hasNewLinesFlag = false; if (preg_match('/\R/', $message) === 1) $hasNewLinesFlag = true; /** Text to log */ $text = ''; if ($logFileExt === "html") { $text = htmlspecialchars($message, ENT_QUOTES if ($hasNewLinesFlag) $text = '
' . $text . "
\n"; $text = $text . '
' . $dataString . "
"; } else { $text = $message . ' ' . $dataString; } $text = "[$dateTimeFormattedString][$loglevelTitle][$caller] $text"; if ($logFileExt === "html") { // Set text bold $text = $this->setFormatTagsForHtmlFormat($text, $isBold, $isErrorText, $isDebugText, $isWarningText); // Set paragraph $text = '

' . $text . '

'; } $text = $text . PHP_EOL; // Create dir if not exists $logFolderPath = dirname($this->logFilePath); if (!is_dir($logFolderPath)) { mkdir($logFolderPath, 0755, true); } // append line $stream = fopen($this->logFilePath, 'a'); $result = fwrite($stream, $text); fclose($stream); // Append text to file return $result; } /** Append log message to SQL Light DB * $logLevelCode – Log level title * $message – Log message * $dataString – Data object string * $caller – Caller name После выполнения функции возвращаемое значение будет равно одному из двух : * true – успешно * false – не удалось