#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.¶
Не используйте выборки из журнала регистрации там, где критична высокая скорость. С ростом объема журнала скорость выборки снижается пропорционально.
Для протоколирования производительных сценариев лучше:
- использовать отдельный регистр;
- обращаться к специализированным объектам платформы (например,
МенеджерФоновыхЗаданийдля истории фоновых заданий).
Это же учитывайте при разработке отчетов по журналу регистрации.
См. также¶
Проверки¶
#acc:152 #acc:153 #acc:154 #acc:156 #acc:157 #acc:161 #acc:370 #acc:371