#std498

Использование Журнала регистрации

1.

Журнал регистрации хранит события, которые возникают в работе пользователей с информационной базой.

При администрировании журнал анализируют в разных разрезах: какие события были в момент времени, что делал конкретный пользователь и т.д.

2.

Пишите события в журнал регистрации из встроенного языка, когда администратору нужна дополнительная диагностика, которую платформа не пишет автоматически.

Это актуально и для интерактивной бизнес-логики, и для фоновых/регламентных заданий.

Одна запись журнала должна соответствовать одному событию.

2.1.

Используйте строковый идентификатор типа события.

Типы событий группируйте по функциональному признаку: НазваниеГруппыСобытий.НазваниеСобытия.

Например, лучше:

  • Поручения.Уведомление о новых задачах;
  • Поручения.Уведомление о зависших задачах.

Хуже:

  • Уведомление о новых задачах;
  • Уведомление о зависших задачах.

Не включайте в тип события конкретные данные из ИБ или внешних систем.

Например, неправильно:

  • Не удалось отменить проведение документа <Реализация КП00-00002 от 11>;
  • В информационной базе не найден сотрудник Найденова, банковская карта 3333.

Метаданные события передавайте в параметр Метаданные, данные — в параметр Данные метода ЗаписьЖурналаРегистрации.

Типы событий делайте более общими, например:

  • Проведение документов.Не удалось отменить проведение;
  • Сотрудники.В информационной базе не найден сотрудник.

Текст типа события должен быть локализуемым и задаваться на основном языке конфигурации.

2.2.

Выбирайте уровень важности события по смыслу:

  • Ошибка — критичные события и сбои;
  • Предупреждение — потенциальные проблемы и нефатальные ошибки;
  • Информация — успешные действия;
  • Примечание — менее значимые сообщения.
2.3.

Комментарий — это текстовая неструктурированная информация о событии.

Не объединяйте в один комментарий несколько событий.

Неправильно

Один комментарий содержит целую последовательность разных событий:

[01.01.2010 00:00:01] Начало инициализации обмена данными...
[01.01.2010 00:00:02] Окончание инициализации обмена данными...
[01.01.2010 00:00:03] Начало процесса обмена данными...
[01.01.2010 00:00:04] Начало записи изменений...
[01.01.2010 00:00:05] Окончание записи изменений...
[01.01.2010 00:00:06] Окончание процесса обмена данными...
[01.01.2010 00:00:07] Выполнено, выгрузка данных...

Пишите столько записей, сколько событий реально произошло.

Не помещайте в комментарий текстовые данные неизвестного объема (содержимое файлов, ответы веб-сервисов и т.п.). Ориентир по размеру — до 10 Кб.

Для записи данных об исключении используйте:

ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())

Пример регистрации дополнительных событий подсистемы:

Попытка
    ЗаписьЖурналаРегистрации(НСтр("ru = 'Мой механизм.Действие с возможной ошибкой'", КодОсновногоЯзыка),
        УровеньЖурналаРегистрации.Информация, , ,
        НСтр("ru = 'Начато действие'"));

    ДействиеСВозможнойОшибкой(ОбъектДействия);

    ЗаписьЖурналаРегистрации(НСтр("ru = 'Мой механизм.Действие с возможной ошибкой'", КодОсновногоЯзыка),
        УровеньЖурналаРегистрации.Информация, , ,
        НСтр("ru = 'Завершено действие'"));

Исключение
    ЗаписьЖурналаРегистрации(НСтр("ru = 'Мой механизм.Действие с возможной ошибкой'", КодОсновногоЯзыка),
        УровеньЖурналаРегистрации.Ошибка, , ,
        НСтр("ru = 'Во время выполнения действия произошла неизвестная ошибка.'") + Символы.ПС
        + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;

Переменная КодОсновногоЯзыка должна содержать код языка хранения данных. См. #std784: Автогенерированные данные в информационной базе: требования по локализации, п. 1.

3.

Не используйте выборки из журнала регистрации там, где критична высокая скорость. С ростом объема журнала скорость выборки снижается пропорционально.

Для протоколирования производительных сценариев лучше:

  • использовать отдельный регистр;
  • обращаться к специализированным объектам платформы (например, МенеджерФоновыхЗаданий для истории фоновых заданий).

Это же учитывайте при разработке отчетов по журналу регистрации.

См. также
Проверки

#bslls:UsageWriteLogEvent

#acc:152 #acc:153 #acc:154 #acc:156 #acc:157 #acc:161 #acc:370 #acc:371

Источник

https://its.1c.ru/db/v8std#content:498