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

27 января 2025

ID logrr_component_add

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

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

Команда создания и настройки сервера журналирования 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

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

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

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

CMakeLists.txt

find_package (logrr_server REQUIRED COMPONENTS ENTITY)

# ...

set (TASKS

# ...

${logrr_server_ENTITY})

# ...

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

create_logrr_server(

LOG_LEVEL DEBUG

WRITE_TO_CORE ON

OUTPUT_CHANNELS

logrr.FsOutputChannel)

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

list(APPEND ENTITIES

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 ON

${TASKS})

Опцию PACK_DEPS требуется включить при вызове команды build_kos_qemu_image() или build_kos_hw_image() для включения автоматической сборки библиотек в образ диска.

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

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

  • CONFIG_PATH

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

  • SERVER_TARGET

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

  • APP_LOG_DIR

    Указывает директорию хранения файлов журналов для программ. Обязательный параметр.

  • SYS_LOG_DIR

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

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

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

CMakeLists.txt

find_package (logrr_fs_output_channel REQUIRED COMPONENTS ENTITY)

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

create_logrr_fs_output_channel (

APP_LOG_DIR "/log/apps"

SYS_LOG_DIR "/log/sys")

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

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

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

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