Модуль логирования
Модуль логирования предоставляет систему для записи сообщений различного уровня важности с возможностью вывода в консоль или файл.
Перечисления
-
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
-
enumerator TEST_ERROR
-
enum class prism::logger::Level
Уровни логирования
Совместимы с уровнями логирования SDL (используют соответствующие приоритеты)
Values:
-
enumerator VERBOSE
Подробные сообщения (наибольшая детализация)
-
enumerator DEBUG
Отладочные сообщения
-
enumerator INFO
Информационные сообщения
-
enumerator WARNING
Предупреждения
-
enumerator ERROR
Ошибки
-
enumerator CRITICAL
Критические ошибки
-
enumerator VERBOSE
Функции
Основные функции управления логированием:
-
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)
Проверяет тип последней ошибки
См. также
- Параметры:
errorType – Ожидаемый тип ошибки для проверки
- Результат:
true если последняя ошибка существует и совпадает с заданным типом
-
void prism::logger::clearLastError()
Сбрасывает состояние последней ошибки
- Post:
После вызова hasLastError() будет возвращать false