ОтелЛоггер
Логгер (Logger) — инструмент для создания и отправки записей лога.
Описание
ОтелЛоггер реализует спецификацию OpenTelemetry Logger API. Создаётся через ОтелПровайдерЛогирования. Логгер привязан к ОтелОбластьИнструментирования и делегирует записи цепочке процессоров провайдера.
Все публичные методы потокобезопасны.
Методы
СоздатьЗаписьЛога
Создаёт новую запись лога с лимитами из провайдера.
Возвращает: ОтелЗаписьЛога
Включен
Проверяет, включён ли логгер для заданных параметров.
Вызывать Включен необязательно: он не требуется перед Записать, которая сама отбрасывает запись без провайдера, после его закрытия и без процессоров. Включен процессоров Записать не опрашивает: запись получает ПриПоявлении каждого процессора. Включен — оптимизация, полезная, только когда построение записи дорогое — например, тело или атрибуты вычисляются по данным из базы: тогда можно сначала вызвать Включен и пропустить эту работу при Ложь. Дешёвую запись можно сразу передавать в Записать.
Важно: результат не постоянен и может меняться со временем (регистрация процессоров, закрытие провайдера): сохранённое значение может устареть.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Контекст | Соответствие, Неопределено | Неопределено | Явный контекст (иначе текущий контекст потока) |
ОбластьИнструментирования | ОтелОбластьИнструментирования | Неопределено | Scope (иначе scope логгера) |
СтепеньСерьезности | Число | 0 | Номер серьезности для фильтрации |
ИмяСобытия | Строка | "" | Имя события для фильтрации |
Возвращает: Булево — Истина, если логгер может обрабатывать записи
Записать
Отправляет запись лога. Устанавливает scope, resource и trace context, затем передаёт запись процессору. После вызова запись становится неизменяемой (Зафиксировать()).
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
ЗаписьЛога | ОтелЗаписьЛога | — | Запись лога для отправки |
Контекст | Соответствие, Неопределено | Неопределено | Явный контекст для trace correlation |
ОбластьИнструментирования
Возвращает область инструментирования логгера.
Возвращает: ОтелОбластьИнструментирования
Пример
Логгер = Провайдер.ПолучитьЛоггер("мой-сервис", "1.0.0");
// Дешёвая запись передаётся сразу, без Включен()
Запись = Логгер.СоздатьЗаписьЛога();
Запись
.УстановитьСерьезность(ОтелСтепеньСерьезности.Info())
.УстановитьТело("Операция завершена")
.УстановитьАтрибут("user.id", "42");
Логгер.Записать(Запись);
// Включен() экономит дорогое построение записи
Если Логгер.Включен(, , ОтелСтепеньСерьезности.Debug()) Тогда
Запись = Логгер.СоздатьЗаписьЛога();
Запись
.УстановитьСерьезность(ОтелСтепеньСерьезности.Debug())
.УстановитьТело(ПостроитьОтчетОСостоянии()); // дорогое вычисление
Логгер.Записать(Запись);
КонецЕсли;