ОтелАппендерLogos
Аппендер logos для отправки логов через OpenTelemetry.
Описание
Реализует интерфейс аппендера библиотеки logos (oscript-library/logos), перенаправляя сообщения логирования в формате OTLP через [ОтелЛоггер].
Позволяет использовать существующую инфраструктуру логирования на основе logos и одновременно отправлять логи в OpenTelemetry-совместимые системы (Grafana Loki, Jaeger и т.д.).
Маппинг уровней logos → OTel SeverityNumber:
| Уровень logos | Значение | OTel Severity | Номер |
|---|---|---|---|
Отладка | 0 | DEBUG | 5 |
Информация | 1 | INFO | 9 |
Предупреждение | 2 | WARN | 13 |
Ошибка | 3 | ERROR | 17 |
КритичнаяОшибка | 4 | FATAL | 21 |
Исключения, возникающие внутри аппендера, перехватываются и не распространяются в цепочку logos — это защищает логирование от сбоев OTel-инфраструктуры.
Конструктор
Новый ОтелАппендерLogos(Логгер)| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Логгер | ОтелЛоггер | Неопределено | Настроенный логгер OpenTelemetry для отправки записей. Можно установить позже через УстановитьЛоггер() |
Методы
ВывестиСобытие
Выводит событие лога через OpenTelemetry. Вызывается библиотекой logos при каждом событии логирования. Маппирует уровень, тело, временну́ю метку и дополнительные поля события.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
СобытиеЛога | СобытиеЛога | — | Событие из библиотеки logos |
Закрыть
Закрывает аппендер. Ресурсов, требующих явного закрытия, нет.
УстановитьСвойство
Устанавливает свойство аппендера из конфигурационного файла logos. Свойства не поддерживаются, конфигурация выполняется через конструктор.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ИмяСвойства | Строка | — | Имя свойства |
Значение | Произвольный | — | Значение свойства |
УстановитьЛоггер
Устанавливает OTel-логгер для отправки данных.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Значение | ОтелЛоггер | — | Настроенный логгер OpenTelemetry |
Логгер
Возвращает текущий OTel-логгер.
Возвращает: ОтелЛоггер — логгер OpenTelemetry
Пример
#Использовать opentelemetry
#Использовать logos
// Создать OTel-логгер
Транспорт = Новый ОтелHttpТранспорт("http://localhost:4318");
ЭкспортерЛогов = Новый ОтелЭкспортерЛогов(Транспорт);
// ... настроить провайдер логирования ...
// Создать аппендер и привязать к логгеру
ОтелЛоггер = ПровайдерЛогирования.ПолучитьЛоггер("мое.приложение");
Аппендер = Новый ОтелАппендерLogos(ОтелЛоггер);
// Подключить аппендер к logos
МенеджерЛогирования.ДобавитьАппендер("otel", Аппендер);
// Теперь все вызовы logos автоматически отправляются в OpenTelemetry
Лог = Логирование.ПолучитьЛог("мое.приложение");
Лог.Информация("Сообщение отправляется в OTel");