Модуль логирования

Модуль логирования предоставляет систему для записи сообщений различного уровня важности с возможностью вывода в консоль или файл.

Перечисления

enum class prism::logger::Error

Перечисление ошибок движка

Содержит коды ошибок, которые могут быть залогированы через logError()

Values:

enumerator TEST_ERROR

Тестовая ошибка (пример)

enumerator FAILED_TO_CREATE_VK_INSTANCE
enumerator FAILED_TO_CREATE_WINDOW_SURFACE
enumerator PRISM_ENGINE_NOT_INITIALIZE
enumerator WINDOW_INSTANCE_CREATE_ERROR
enumerator NOT_CALL_CLEANUP_IN_PGC_CORE
enumerator SDL_VULKAN_EXTENSIONS_COUNT_FAILED
enumerator VULKAN_VALIDATION_LAYERS_UNAVAILABLE
enumerator VULKAN_DEBUG_MESSENGER_SETUP_FAILED
enumerator VULKAN_NO_GPU_SUPPORT
enumerator VULKAN_NO_SUITABLE_GPU
enumerator VULKAN_LOGICAL_DEVICE_CREATION_FAILED
enumerator VULKAN_SWAP_CHAIN_FAILED
enumerator FAILED_TO_OPEN_FILE
enumerator FAILED_TO_DETERMINE_FILE_SIZE
enumerator FAILED_TO_READ_FILE
enum class prism::logger::Level

Уровни логирования

Совместимы с уровнями логирования SDL (используют соответствующие приоритеты)

Values:

enumerator VERBOSE

Подробные сообщения (наибольшая детализация)

enumerator DEBUG

Отладочные сообщения

enumerator INFO

Информационные сообщения

enumerator WARNING

Предупреждения

enumerator ERROR

Ошибки

enumerator CRITICAL

Критические ошибки

Функции

Основные функции управления логированием:

void prism::logger::setLevel(Level level)

Устанавливает уровень логирования

Параметры:

level – Минимальный уровень логирования (сообщения ниже этого уровня игнорируются)

bool prism::logger::setOutputFile(const std::string &filename)

Настраивает вывод логов в файл

Параметры:

filename – Имя файла для записи логов

Результат:

true если файл успешно открыт для записи, false в случае ошибки

void prism::logger::setOutputConsole()

Настраивает вывод логов в консоль

Это режим по умолчанию для системы логирования

void prism::logger::log(Level level, const std::string &message)

Основная функция логирования

Параметры:
  • level – Уровень важности сообщения

  • message – Текст сообщения для логирования

void prism::logger::logError(Error err, const std::string &details = "")

Логирует ошибку движка с дополнительными деталями

Параметры:
  • err – Код ошибки из перечисления Error

  • details – Дополнительная информация об ошибке (по умолчанию пустая строка)

Удобные функции для разных уровней логирования:

void prism::logger::verbose(const std::string &message)

Логирует сообщение с уровнем VERBOSE.

Параметры:

message – Текст сообщения

void prism::logger::debug(const std::string &message)

Логирует сообщение с уровнем DEBUG.

Параметры:

message – Текст сообщения

void prism::logger::info(const std::string &message)

Логирует сообщение с уровнем INFO.

Параметры:

message – Текст сообщения

void prism::logger::warning(const std::string &message)

Логирует сообщение с уровнем WARNING.

Параметры:

message – Текст сообщения

void prism::logger::error(const std::string &message)

Логирует сообщение с уровнем ERROR.

Параметры:

message – Текст сообщения

void prism::logger::critical(const std::string &message)

Логирует сообщение с уровнем CRITICAL.

Параметры:

message – Текст сообщения

Функции для работы с последней ошибкой:

std::optional<Error> prism::logger::getLastError()

Получает последнюю залогированную ошибку

Результат:

std::optional<Error> - последняя ошибка или std::nullopt, если ошибок не было

bool prism::logger::hasLastError()

Проверяет наличие залогированных ошибок

Примечание

Эквивалентно getLastError().has_value()

Результат:

true если есть необработанная ошибка, false иначе

bool prism::logger::checkLastErrorType(Error errorType)

Проверяет тип последней ошибки

См. также

getLastError()

Параметры:

errorType – Ожидаемый тип ошибки для проверки

Результат:

true если последняя ошибка существует и совпадает с заданным типом

void prism::logger::clearLastError()

Сбрасывает состояние последней ошибки

Post:

После вызова hasLastError() будет возвращать false