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
МенеджерЛогирования.ДобавитьАппендер("otel", Аппендер);

// Теперь все вызовы logos автоматически отправляются в OpenTelemetry
Лог = Логирование.ПолучитьЛог("мое.приложение");
Лог.Информация("Сообщение отправляется в OTel");