Библиотека logrr_cpp
Библиотека logrr_cpp
предоставляет API для отправки сообщений в журнал.
Библиотека logrr_cpp
предназначена для использования в программах на языке C++. В программах на языке C используйте библиотеку logrr_clog
.
Чтобы получить доступ к API этой библиотеки,
скомпонуйте вашу программу с библиотекой, используя CMake-команду target_link_libraries()
.
CMakeLists.txt
Метод Log() и макрос LOG
Метод logrr::Log()
выполняет запись в журнал.
Параметры метода:
logLevel
- Уровень журналирования
LogLevel
. sourceLocation
- Объект, определяющий местоположение в исходном коде (имя файла, имя функции, номер строки и номер столбца). В C++20 используется класс
std::source_location
, в более ранних версиях используется классstd::experimental::source_location
. format
- Строка форматирования текста сообщения.
args
- Параметры для подстановки в строку форматирования
format
.
Метод logrr::Log()
предназначен для использования в программах на языке C++. В программах на языке C используйте статическую функцию ClogLog() или макрос CLOG.
Описание метода logrr::Log()
и макроса быстрого доступа к нему представлены в файле /opt/KasperskyOS-Community-Edition-<version>/sysroot-*-kos/include/component/logrr/cpp/logger.h
.
component/logrr/cpp/logger.h (фрагмент)
Макрос быстрого доступа к методу Log()
Вместо вызова статического метода Logger::Log()
вы можете использовать макрос, описание которого представлено в файле component/logrr/cpp/logger.h
. Этот макрос является вариационным (принимает переменное число параметров), что позволяет не указывать все параметры метода Logger::Log()
. При вызове макроса достаточно указать только уровень журналирования и строку форматирования сообщения со значениями параметров. Используемый уровень журналирования logLevel
определяется первым параметром макроса: Пример использования этого макросов представлен в разделе "Отправка сообщений в журнал с помощью макросов".
Класс LogLevel
Класс LogLevel
является перечислением (enum class
) и содержит поля, имена которых соответствуют уровням журналирования, доступным в программе LogRR
.
Класс LogLevel
предназначен для использования в программах на языке C++. В программах на языке C используйте перечисляемый тип LogrrLogLevel
.
Значения перечисления LogLevel
могут передаваться в:
- статический метод
Log()
классаLogger
; - статические методы
ChangeLogLevel()
иChangeGlobalLogLevel()
структурыController
; - конструктор класса
LogIface
;
Описание класса LogLevel
представлено в файле /opt/KasperskyOS-Community-Edition-<version>/sysroot-*-kos/include/component/logrr/core/log_level.h
.
component/logrr/core/log_level.h (фрагмент)
Класс LogIface
Класс LogIface
содержит методы, позволяющие поэтапно получить текст записи журнала из частей, и затем отправить запись в журнал одним вызовом:
- Для установки уровня журналирования отправляемых сообщений используется метод
SetLogLevel()
. - Для добавления текста к сообщению используется метод
Push()
. - Для отправки составленного одним или несколькими вызовами метода
Push()
сообщения в журнал используется методFlush()
.При вызове деструктора
~LogIface()
в журнал также отправляется составленное вызовамиPush()
сообщение, если оно не было ранее отправлено с помощьюFlush()
. - Для немедленной отправки отдельного сообщения (без использования составленного вызовами
Push()
текста) используется методLog()
.
Чтобы создать экземпляр класса LogIface
, передайте один из перечислителей LogLevel
в конструктор класса. Пример использования функций класса LogIface
представлен в подразделе "Объединение сообщений" раздела "Дополнительные возможности при отправке сообщений в журнал".
Описание класса LogIface
представлено в файле /opt/KasperskyOS-Community-Edition-<version>/sysroot-*-kos/include/component/logrr/cpp/tools.h
.
component/logrr/cpp/tools.h (фрагмент)