Неверное использование метода "ЗаписьЖурналаРегистрации" (UsageWriteLogEvent)¶
Тип | Поддерживаются языки |
Важность | Включена по умолчанию |
Время на исправление (мин) |
Теги |
---|---|---|---|---|---|
Дефект кода |
BSL OS |
Информационный |
Да |
1 |
standard badpractice |
Описание диагностики¶
Важно правильно с определенной дотошностью указывать основные параметры при записи в Журнал регистрации.
Недопустимо прятать исключения.
При обработке исключений обязательно нужно выполнять запись в журнал регистрации с полным представлением ошибки.
Для этого нужно добавить в комментарий события результат ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())
Нельзя пропускать 2й параметр Уровень журнала регистрации. Если его не указать, по умолчанию 1С применит уровень ошибки Информация, и данная запись может потеряться в потоке записей.
Нельзя пропускать и 5й параметр - комментарий к событию записи в журнал регистрации.
Примеры¶
Примеры неверного кода
ЗаписьЖурналаРегистрации("Событие");// ошибка
ЗаписьЖурналаРегистрации("Событие", УровеньЖурналаРегистрации.Ошибка);// ошибка
ЗаписьЖурналаРегистрации("Событие", УровеньЖурналаРегистрации.Ошибка, , );// ошибка
ЗаписьЖурналаРегистрации("Событие", , , , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
ЗаписьЖурналаРегистрации("Событие", УровеньЖурналаРегистрации.Ошибка, , , );// ошибка
Попытка
КодСервер();
Исключение
ЗаписьЖурналаРегистрации("Событие", УровеньЖурналаРегистрации.Ошибка, , ,
ОписаниеОшибки()); // ошибка
ЗаписьЖурналаРегистрации("Событие", УровеньЖурналаРегистрации.Ошибка, , ,
"Комментарий 1"); // ошибка
КонецПопытки;
Правильный код
Попытка
КодСервер();
Исключение
ТекстОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
ЗаписьЖурналаРегистрации(НСтр("ru = 'Выполнение операции'"), УровеньЖурналаРегистрации.Ошибка, , ,
ТекстОшибки);
КонецПопытки;
Попытка
КодСервер();
Исключение
ТекстОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
ЗаписьЖурналаРегистрации(НСтр("ru = 'Выполнение операции'"), УровеньЖурналаРегистрации.Ошибка, , ,
ТекстОшибки);
ВызватьИсключение;
КонецПопытки;
Процедура ЗагрузитьДанные() Экспорт
Попытка
ВыполнитьЗаписьДанных();
Исключение
ЗаписьЖурналаРегистрации(); // <- исключение подавляется с записью в ЖР
КонецПопытки;
КонецПроцедуры
Процедура ВыполнитьЗаписьДанных()
НачатьТранзакцию();
Попытка
// ...
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение; // <- вложенная попытка, запись в ЖР не требуется
КонецПопытки;
КонецПроцедуры
Источники¶
Сниппеты¶
Экранирование кода¶
// BSLLS:UsageWriteLogEvent-off
// BSLLS:UsageWriteLogEvent-on
Параметр конфигурационного файла¶
"UsageWriteLogEvent": false