Добавление сервера журналирования и каналов вывода в решение

12 января 2026

ID logrr_component_add

Программа LogrrServer отправляет сообщения одному или нескольким каналам вывода. Вы можете записывать сообщения журнала в файлы, используя канал вывода FsOutputChannel.

Если вам не требуется централизованно обрабатывать и хранить журналы, то вы можете не добавлять сервер журналирования и каналы вывода в ваше решение и использовать API компонента LogRR для журналирования. В таком случае, вы сможете добавить сервер журналирования и каналы вывода в любое время, если они потребуются.

Добавление и настройка сервера журналирования

Команда создания и настройки сервера журналирования create_logrr_server() может содержать следующие параметры:

  • LOG_LEVEL

    Устанавливает указанный уровень журналирования. Доступные значения LOG_LEVEL: CRITICAL, ERROR, WARNING, INFO, DEBUG и TRACE. По умолчанию, сервер журналирования обрабатывает сообщения с уровнем Info.

  • CONFIG_PATH

    Указывает путь до конфигурационного файла сервера журналирования.

  • RECV_CORE_LOGS

    Включает сбор журналов ядра.

  • WRITE_TO_CORE

    Включает передачу журналов в ядро. Не исключает передачу журналов серверу журналирования и далее в канал вывода. Требуется для вывода журналов в UART.

  • OUTPUT_CHANNELS

    Подключает один или несколько указанных каналов вывода к серверу.

  • DENY_DYNAMIC_CONN_TYPES

    Включает отклонение динамических подключений к серверу журналирования.

  • DENY_STATIC_CONN_TYPES

    Включает отклонение статических подключений к серверу журналирования.

  • VFS_ENTITY

    Имя CMake-цели VFS, к которой будет подключен сервер журналирования. Не обязательный параметр.

  • VFS_ENTITY_TASK_NAME

    Имя программы VFS в системе, к которой динамически будет подключен сервер журналирования. Не обязательный параметр. Использование этого параметра исключает возможность использования параметра VFS_CONN_ID.

  • VFS_CONN_ID

    Идентификатор статического IPC-соединения к VFS, которое будет использовать сервер журналирования. Не обязательный параметр. Исключает возможность использования параметра VFS_ENTITY_TASK_NAME.

Чтобы добавить программу LogrrServer в решение,

отредактируйте корневой файл с CMake-командами сборки решения или файл с CMake-командами сборки инициализирующей программы Einit:

CMakeLists.txt

include (logrr_server/configure)

include (logrr_fs_output_channel/configure)

# ...

set (TASKS

# ...

ClientOne)

# ...

# Добавление сервера, использующего канал вывода FsOutputChannel

create_logrr_server(

LOG_LEVEL DEBUG

WRITE_TO_CORE ON

OUTPUT_CHANNELS

logrr.FsOutputChannel)

# Добавление сервера и канала вывода в решение

list(APPEND TASKS

logrr_server::default_entity

logrr_fs_output_channel::default_entity)

# Создание статических IPC-каналов для программ-источников с сервером

connect_to_logrr_server (ENTITIES ClientOne)

build_kos_qemu_image (kos-qemu-image

CONNECTIONS_CFG ${INIT_YAML_FILE}

SECURITY_PSL ${SECURITY_PSL_FILE}

PACK_DEPS_COPY_ONLY ON

PACK_DEPS_LIBS_PATH path_to_libs_dir

PACK_DEPS_COPY_TARGET copylibs

${TASKS})

Опции PACK_DEPS_COPY_ONLY, PACK_DEPS_LIBS_PATH и PACK_DEPS_COPY_TARGET требуется включить при вызове команды build_kos_qemu_image() или build_kos_hw_image() для автоматического поиска и сборки в образ диска динамических библиотек logrr_clog и logrr_cpp.

Добавление и настройка каналов вывода

Команда создания и настройки канала вывода журналов в файлы create_logrr_fs_output_channel() может содержать следующие параметры:

  • CONFIG_PATH

    Указывает путь до конфигурационного файла канала вывода.

  • SERVER_TARGET

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

  • LOG_DIR

    Указывает директорию хранения файлов журналов.

  • VFS_ENTITY

    Имя CMake-цели VFS, к которой будет подключен сервер журналирования. Не обязательный параметр.

  • VFS_ENTITY_TASK_NAME

    Имя программы VFS в системе, к которой динамически будет подключен сервер журналирования. Не обязательный параметр. Использование этого параметра исключает возможность использования параметра VFS_CONN_ID.

  • VFS_CONN_ID

    Идентификатор статического IPC-соединения к VFS, которое будет использовать сервер журналирования. Не обязательный параметр. Исключает возможность использования параметра VFS_ENTITY_TASK_NAME.

Чтобы добавить канал вывода FsOutputChannel в решение,

отредактируйте корневой файл с CMake-командами сборки решения или файл с CMake-командами сборки инициализирующей программы Einit:

CMakeLists.txt

find_package (logrr_fs_output_channel REQUIRED COMPONENTS ENTITY)

# Добавление канала вывода FsOutputChannel пишущего в файл

create_logrr_fs_output_channel (

LOG_DIR "/log")

Создание IPC-каналов и разрешение взаимодействия программ

Система сборки обеспечивает автоматическое создание IPC-каналов, необходимых для работы системы журналирования, а также генерирует описание политики безопасности в части, которая разрешает взаимодействие между процессами.

Для создания статического подключения к серверу журналирования, вы можете использовать CMake-команду connect_to_logrr_server (ENTITIES <имена_программ_для_подключения>).

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