Основной сайт хуманэмулятор.рф | Демо | Купить | API | Wiki
System / 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 = '<pre>' . $text . "</pre>\n";
$text = $text . '<pre>' . $dataString . "</pre>";
} 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 = '<p>' . $text . '</p>';
}
$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
Функция на вход принимает параметры:
После выполнения функции возвращаемое значение будет равно одному из двух :
(примеры не найдены)
=============================================
logger Объекты DOM System Vision Web Window
=============================================
если что-то непонятно или необходимо узнать или считаете что надо добавить по работе этой функции, пишите в комментарии или на наш форум
.