Функции ClogInit(), ClogLog() и макрос CLOG

12 января 2026

ID logrr_api_clog_macro

Функция ClogInit() инициализирует клиентскую часть компонента LogRR. Метод принимает идентификатор провайдера журналов. Если явно не вызвать функцию ClogInit(), то инициализация будет выполнена при первом вызове макроса CLOG, а в качестве идентификатора провайдера будет установлено имя программы, вызвавшей макрос.

Функция ClogLog() выполняет запись в журнал.

Функция ClogLog() предназначена для использования в программах на языке C. В программах на языке C++ используйте функцию Logger::Log() или макросы LOG_*.

Описание функций ClogInit(), ClogLog() и макросов для быстрого доступа к ней представлено в файле /opt/KasperskyOS-Community-Edition-<platform>-<version>/sysroot-*-kos/include/component/logrr/clog/clog.h.

component/logrr/clog/clog.h (фрагмент)

__attribute__((format(printf, 6, 7)))

void ClogLog(const char *module, LogLevel level, const char *file, int line, const char *func, const char *message, ...);

#define CLOG_TRACE_IMPL_EX(level, file, line, func, ...) \

ClogLog(LOG_MODULE, level, file, line, func, __VA_ARGS__)

#define CLOG_TRACE_IMPL(level, ...) \

CLOG_TRACE_IMPL_EX((level), \

__FILENAME__, \

__LINE__, \

__func__, \

__VA_ARGS__)

#define __CLOG_LEVEL_TRACE__ LogrrLogLevel_Trace

#define __CLOG_LEVEL_DEBUG__ LogrrLogLevel_Debug

#define __CLOG_LEVEL_INFO__ LogrrLogLevel_Info

#define __CLOG_LEVEL_WARNING__ LogrrLogLevel_Warning

#define __CLOG_LEVEL_ERROR__ LogrrLogLevel_Error

#define __CLOG_LEVEL_CRITICAL__ LogrrLogLevel_Critical

#define CLOG(level, ...) CLOG_TRACE_IMPL(__CLOG_LEVEL_ ## level ## __, __VA_ARGS__)

Параметры функции ClogLog():

  • level

    Уровень журналирования LogrrLogLevel.

  • file

    Имя файла.

  • line

    Номер строки в файле.

  • func

    Имя функции.

  • message

    Текст сообщения или строка форматирования текста сообщения.

  • ...

    Параметры для подстановки в строку форматирования message.

Макрос быстрого доступа к функции ClogLog()

Вместо вызова функции ClogLog() вы можете использовать макрос, описание которого представлено в файле component/logrr/clog/clog.h. Этот макрос является вариационным (принимает переменное число параметров), что позволяет не указывать все параметры функции ClogLog(). При вызове макроса достаточно указать уровень журналирования и текст сообщения или строку форматирования сообщения со значениями параметров. Используемый уровень журналирования level определяется первым параметром макроса. Пример использования этого макроса представлен в разделе "Отправка сообщений в журнал с помощью макросов".

Вам помогла эта статья?
Что нам нужно улучшить?
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!