1С 8.3 Залогировать Событие
Данные > Примеры кода 1С > 1С 8.3 Журнал регистрации
Перейти в раздел примеры кода 1С 8.3:
Программное логирование событий в 1С 8.3 (by nikita.wild):
// Вызов через общую точку входа ничем не отличается от прямого вызова ЗаписьЖурналаРегистрации(), но через общую точку входа.
// ИмяСобытия = "Вызов команды Загрузить данные";
// Комментарий = "Из формы документа была вызвана интеграционная команда Загрузить расчетные данные окончательного увольнения сотрудника";
// Инструменты.ЗалогироватьСобытие(ИмяСобытия, ,Комментарий, Объект.Ссылка);
// Общая точка входа для записи в журнал регистрации и/или какую-либо другую систему логирования.
//
/// Параметры:
// Событие - Строка - Заголовок события (возможно, составной, через ".").
// Уровень — Число — уровень события, 1 - Ошибка, 2 - Предупреждение, 3 - Информация, 4 - Примечание
// Комментарий - Строка - Строковое тело события (не боле: 4 символов).
// Данные - Произвольный - объект данных, с которым связано событие.
// Метаданные - Объект метаданных, с которым связано событие.
// Транзакция - Булево - Режим транзакционной записи в журнал (Истина = Внутри транзакции).
Процедура ЗалогироватьСобытие(Событие, Уровень = 3, Комментарий = "", Данные = Неопределено,
Метаданные = Неопределено, Транзакция = Ложь) Экспорт
// Определяем уровень события по числ
Схема = Новый Соответствие;
Схема.Вставить (1, Уровеньжурналарегистрации.Ошибка) ;
Схема.Вставить (2, УровеньжурналаРегистрации.Предупреждение) ;
Схема.Вставить (3, УровеньжурналаРегистрации.Информация) ;
Схема.Вставить (4, УровеньжурналаРегистрации.Примечание) ;
УровеньСобытия = Схема.Получить(Уровень);
Если УровеньСобытия = Неопределено Тогда
УровеньСобытия = УровеньЖурналаРегистрации.Информация;
КонецЕсли;
// На всякий случай проверяем длинну комментария - это можно считать защитой от случайной или
// намеренной атаки на переполнение дисковой памяти. 1 Кb - вполне достаточно.
ТелоСобытия = "";
Если СтрДлина(Комментарий) > 1024 Тогда
ТелоСобытия = Лев(Комментарий, 1024);
Иначе
ТелоСобытия = Комментарий;
КонецЕсли;
// по умолчанию логируем событие в журнал регистрации, но при необходимости можем либо заменить
// на логирование в какой-то другой журнал, либо делать параллельную запись в несколько журнал
ЗаписьЖурналаРегистрации(Событие, УровеньСобытия, Метаданные, Данные, ТелоСобытия, Транзакция);
КонецПроцедуры // ЗалогироватьСобытие
// ИмяСобытия = "Вызов команды Загрузить данные";
// Комментарий = "Из формы документа была вызвана интеграционная команда Загрузить расчетные данные окончательного увольнения сотрудника";
// Инструменты.ЗалогироватьСобытие(ИмяСобытия, ,Комментарий, Объект.Ссылка);
// Общая точка входа для записи в журнал регистрации и/или какую-либо другую систему логирования.
//
/// Параметры:
// Событие - Строка - Заголовок события (возможно, составной, через ".").
// Уровень — Число — уровень события, 1 - Ошибка, 2 - Предупреждение, 3 - Информация, 4 - Примечание
// Комментарий - Строка - Строковое тело события (не боле: 4 символов).
// Данные - Произвольный - объект данных, с которым связано событие.
// Метаданные - Объект метаданных, с которым связано событие.
// Транзакция - Булево - Режим транзакционной записи в журнал (Истина = Внутри транзакции).
Процедура ЗалогироватьСобытие(Событие, Уровень = 3, Комментарий = "", Данные = Неопределено,
Метаданные = Неопределено, Транзакция = Ложь) Экспорт
// Определяем уровень события по числ
Схема = Новый Соответствие;
Схема.Вставить (1, Уровеньжурналарегистрации.Ошибка) ;
Схема.Вставить (2, УровеньжурналаРегистрации.Предупреждение) ;
Схема.Вставить (3, УровеньжурналаРегистрации.Информация) ;
Схема.Вставить (4, УровеньжурналаРегистрации.Примечание) ;
УровеньСобытия = Схема.Получить(Уровень);
Если УровеньСобытия = Неопределено Тогда
УровеньСобытия = УровеньЖурналаРегистрации.Информация;
КонецЕсли;
// На всякий случай проверяем длинну комментария - это можно считать защитой от случайной или
// намеренной атаки на переполнение дисковой памяти. 1 Кb - вполне достаточно.
ТелоСобытия = "";
Если СтрДлина(Комментарий) > 1024 Тогда
ТелоСобытия = Лев(Комментарий, 1024);
Иначе
ТелоСобытия = Комментарий;
КонецЕсли;
// по умолчанию логируем событие в журнал регистрации, но при необходимости можем либо заменить
// на логирование в какой-то другой журнал, либо делать параллельную запись в несколько журнал
ЗаписьЖурналаРегистрации(Событие, УровеньСобытия, Метаданные, Данные, ТелоСобытия, Транзакция);
КонецПроцедуры // ЗалогироватьСобытие
0
комментарии
____________________
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник