1С 8.3 Залогировать Событие - Программист 1С Минск. Автоматизация бизнеса.

Популярные страницы:
Перейти к контенту

1С 8.3 Залогировать Событие

Данные > Примеры кода 1С > 1С 8.3 Журнал регистрации
Программное логирование событий в 1С 8.3 (by nikita.wild):
// Вызов через общую точку входа ничем не отличается от прямого вызова ЗаписьЖурналаРегистрации(), но через общую точку входа.
// ИмяСобытия = "Вызов команды Загрузить данные";
// Комментарий = "Из формы документа была вызвана интеграционная команда Загрузить расчетные данные окончательного увольнения сотрудника";
// Инструменты.ЗалогироватьСобытие(ИмяСобытия, ,Комментарий, Объект.Ссылка);

// Общая точка входа для записи в журнал регистрации и/или какую-либо другую систему логирования.
//
///  Параметры:
// Событие - Строка - Заголовок события (возможно, составной, через ".").
// Уровень — Число — уровень события, 1 - Ошибка, 2 - Предупреждение, 3 - Информация, 4 - Примечание
// Комментарий - Строка - Строковое тело события (не боле: 4 символов).
// Данные - Произвольный - объект данных, с которым связано событие.
// Метаданные - Объект метаданных, с которым связано событие.
// Транзакция - Булево - Режим транзакционной записи в журнал (Истина = Внутри транзакции).

Процедура ЗалогироватьСобытие(Событие, Уровень = 3, Комментарий = "", Данные = Неопределено,
   Метаданные = Неопределено, Транзакция = Ложь) Экспорт

   // Определяем уровень события по числ
   Схема = Новый Соответствие;
   Схема.Вставить (1, Уровеньжурналарегистрации.Ошибка) ;
   Схема.Вставить (2, УровеньжурналаРегистрации.Предупреждение) ;
   Схема.Вставить (3, УровеньжурналаРегистрации.Информация) ;
   Схема.Вставить (4, УровеньжурналаРегистрации.Примечание) ;

   УровеньСобытия = Схема.Получить(Уровень);
   Если УровеньСобытия = Неопределено Тогда
       УровеньСобытия = УровеньЖурналаРегистрации.Информация;
   КонецЕсли;

   // На всякий случай проверяем длинну комментария - это можно считать защитой от случайной или
   // намеренной атаки на переполнение дисковой памяти. 1 Кb - вполне достаточно.
   ТелоСобытия = "";
   Если СтрДлина(Комментарий) > 1024 Тогда
       ТелоСобытия = Лев(Комментарий, 1024);
   Иначе
       ТелоСобытия = Комментарий;
   КонецЕсли;

   // по умолчанию логируем событие в журнал регистрации, но при необходимости можем либо заменить
   // на логирование в какой-то другой журнал, либо делать параллельную запись в несколько журнал
   ЗаписьЖурналаРегистрации(Событие, УровеньСобытия, Метаданные, Данные, ТелоСобытия, Транзакция);

КонецПроцедуры // ЗалогироватьСобытие
Поиск кода
0
Комментарии
____________________
Copyright©, «Программист 1С в г.Минске», 26.04.2022
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник
Назад к содержимому