Skip to content

ОтелЛоггер

Логгер (Logger) — инструмент для создания и отправки записей лога.

Описание

ОтелЛоггер реализует спецификацию OpenTelemetry Logger API. Создаётся через ОтелПровайдерЛогирования. Логгер привязан к ОтелОбластьИнструментирования и делегирует записи цепочке процессоров провайдера.

Все публичные методы потокобезопасны.

Методы

СоздатьЗаписьЛога

Создаёт новую запись лога с лимитами из провайдера.

Возвращает: ОтелЗаписьЛога


Включен

Проверяет, включён ли логгер для заданных параметров. Предназначен для оптимизации hot path — позволяет пропустить создание ОтелЗаписьЛога, если логгер заведомо ничего не сделает.

Важно: Результат может меняться со временем. Кэшировать значение между Записать-вызовами недопустимо (спецификация Logs API §16).

ПараметрТипПо умолчаниюОписание
КонтекстСоответствие, НеопределеноНеопределеноЯвный контекст (иначе текущий контекст потока)
ОбластьИнструментированияОтелОбластьИнструментированияНеопределеноScope (иначе scope логгера)
СтепеньСерьезностиЧисло0Номер серьезности для фильтрации
ИмяСобытияСтрока""Имя события для фильтрации

Возвращает: БулевоИстина, если логгер может обрабатывать записи


Записать

Отправляет запись лога. Устанавливает scope, resource и trace context, затем передаёт запись процессору. После вызова запись становится неизменяемой (Зафиксировать()).

ПараметрТипПо умолчаниюОписание
ЗаписьЛогаОтелЗаписьЛогаЗапись лога для отправки
КонтекстСоответствие, НеопределеноНеопределеноЯвный контекст для trace correlation

ОбластьИнструментирования

Возвращает область инструментирования логгера.

Возвращает: ОтелОбластьИнструментирования

Пример

bsl
Логгер = Провайдер.ПолучитьЛоггер("мой-сервис", "1.0.0");

Если Логгер.Включен(, , ОтелСтепеньСерьезности.Info()) Тогда
    Запись = Логгер.СоздатьЗаписьЛога();
    Запись
        .УстановитьСерьезность(ОтелСтепеньСерьезности.Info())
        .УстановитьТело("Операция завершена")
        .УстановитьАтрибут("user.id", "42");
    Логгер.Записать(Запись);
КонецЕсли;