Skip to content

ОтелАппендерLogos ​

Аппендер logos для отправки логов через OpenTelemetry.

Описание ​

Реализует интерфейс аппендера библиотеки logos (oscript-library/logos), перенаправляя сообщения логирования в формате OTLP через [ОтелЛоггер].

Позволяет использовать существующую инфраструктуру логирования на основе logos и одновременно отправлять логи в OpenTelemetry-совместимые системы (Grafana Loki, Jaeger и т.д.).

Маппинг уровней logos → OTel SeverityNumber:

Уровень logosЗначениеOTel SeverityНомер
Отладка0DEBUG5
Информация1INFO9
Предупреждение2WARN13
Ошибка3ERROR17
КритичнаяОшибка4FATAL21

Исключения, возникающие внутри аппендера, перехватываются и не распространяются в цепочку logos — это защищает логирование от сбоев OTel-инфраструктуры.

Конструктор ​

bsl
Новый ОтелАппендерLogos(Логгер)
ПараметрТипПо умолчаниюОписание
ЛоггерОтелЛоггерНеопределеноНастроенный логгер OpenTelemetry для отправки записей. Можно установить позже через УстановитьЛоггер()

Методы ​

ВывестиСобытие ​

Выводит событие лога через OpenTelemetry. Вызывается библиотекой logos при каждом событии логирования. Маппирует уровень, тело, временну́ю метку и дополнительные поля события.

ПараметрТипПо умолчаниюОписание
СобытиеЛогаСобытиеЛога—Событие из библиотеки logos

Закрыть ​

Закрывает аппендер. Ресурсов, требующих явного закрытия, нет.

УстановитьСвойство ​

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

ПараметрТипПо умолчаниюОписание
ИмяСвойстваСтрока—Имя свойства
ЗначениеПроизвольный—Значение свойства

УстановитьЛоггер ​

Устанавливает OTel-логгер для отправки данных.

ПараметрТипПо умолчаниюОписание
ЗначениеОтелЛоггер—Настроенный логгер OpenTelemetry

Логгер ​

Возвращает текущий OTel-логгер.

Возвращает: ОтелЛоггер — логгер OpenTelemetry

Пример ​

bsl
#Использовать opentelemetry
#Использовать logos

// Создать OTel-логгер
Транспорт = Новый ОтелHttpТранспорт("http://localhost:4318");
ЭкспортерЛогов = Новый ОтелЭкспортерЛогов(Транспорт);
ПровайдерЛогирования = Новый ОтелПровайдерЛогирования(
    ОтелРесурсы.ПоУмолчанию(), Новый ОтелПростойПроцессорЛогов(ЭкспортерЛогов));

// Создать аппендер и привязать к логгеру
ОтелЛоггер = ПровайдерЛогирования.ПолучитьЛоггер("мое.приложение");
Аппендер = Новый ОтелАппендерLogos(ОтелЛоггер);

// Подключить аппендер к логу logos как способ вывода
Лог = Логирование.ПолучитьЛог("мое.приложение");
Лог.ДобавитьСпособВывода(Аппендер);

// Теперь сообщения этого лога отправляются в OpenTelemetry
Лог.Информация("Сообщение отправляется в OTel");