Skip to content

Commit

Permalink
refactor: рефакторинг инициализации логирования
Browse files Browse the repository at this point in the history
  • Loading branch information
alkoleft committed Dec 24, 2024
1 parent f5eee13 commit b924b2f
Showing 1 changed file with 43 additions and 25 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -82,13 +82,10 @@
// ПараметрыЗапуска - см. ЮТФабрика.ПараметрыЗапуска
Процедура Инициализация(ПараметрыЗапуска) Экспорт

УровниЛога = ЮТЛогирование.УровниЛога();

ДанныеКонтекста = НовыйДанныеКонтекста();
ДанныеКонтекста.ФайлЛога = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапуска.logging, "file");
ДанныеКонтекста.ВыводВКонсоль = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапуска.logging, "console", Ложь);
ДанныеКонтекста.Включено = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапуска.logging, "enable", Неопределено);
УровеньЛога = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапуска.logging, "level", УровниЛога.Отладка);

Если ДанныеКонтекста.Включено = Неопределено Тогда
ДанныеКонтекста.Включено = ДанныеКонтекста.ВыводВКонсоль ИЛИ ЗначениеЗаполнено(ДанныеКонтекста.ФайлЛога);
Expand All @@ -99,28 +96,8 @@
Возврат;
КонецЕсли;

Если СтрСравнить(УровеньЛога, УровниЛога.Ошибка) = 0 Тогда
ДанныеКонтекста.УровеньЛога = 99;
ИначеЕсли СтрСравнить(УровеньЛога, УровниЛога.Информация) = 0 Тогда
ДанныеКонтекста.УровеньЛога = 10;
ИначеЕсли СтрСравнить(УровеньЛога, УровниЛога.Предупреждение) = 0 Тогда
ДанныеКонтекста.УровеньЛога = 20;
Иначе
ДанныеКонтекста.УровеньЛога = 0;
КонецЕсли;

ЗначениеПроверки = Строка(Новый УникальныйИдентификатор());
Попытка
ЗаписатьСообщения(ДанныеКонтекста, ЮТКоллекции.ЗначениеВМассиве(ЗначениеПроверки), Ложь);
ДанныеЗаписаны = Истина;
Исключение
ДанныеЗаписаны = Ложь;
КонецПопытки;

Если ДанныеЗаписаны И ЗначениеЗаполнено(ДанныеКонтекста.ФайлЛога) Тогда
ДанныеКонтекста.ФайлЛогаДоступенНаСервере = ЮТЛогированиеСлужебныйВызовСервера.ФайлЛогаДоступенНаСервере(ДанныеКонтекста.ФайлЛога,
ЗначениеПроверки);
КонецЕсли;
ОпределитьУровеньЛоги(ДанныеКонтекста, ПараметрыЗапуска);
ОпределитьДоступностьЛогированияВФайл(ДанныеКонтекста);

ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(ИмяКонтекстаЛогирования(), ДанныеКонтекста, Истина);

Expand Down Expand Up @@ -412,4 +389,45 @@

#КонецОбласти

Процедура ОпределитьУровеньЛоги(ДанныеКонтекста, ПараметрыЗапуска)

УровниЛога = ЮТЛогирование.УровниЛога();
УровеньЛога = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапуска.logging, "level", УровниЛога.Отладка);

Если СтрСравнить(УровеньЛога, УровниЛога.Ошибка) = 0 Тогда
ДанныеКонтекста.УровеньЛога = 99;
ИначеЕсли СтрСравнить(УровеньЛога, УровниЛога.Информация) = 0 Тогда
ДанныеКонтекста.УровеньЛога = 10;
ИначеЕсли СтрСравнить(УровеньЛога, УровниЛога.Предупреждение) = 0 Тогда
ДанныеКонтекста.УровеньЛога = 20;
Иначе
ДанныеКонтекста.УровеньЛога = 0;
КонецЕсли;

КонецПроцедуры

Процедура ОпределитьДоступностьЛогированияВФайл(ДанныеКонтекста)

ЗначениеПроверки = Строка(Новый УникальныйИдентификатор());
Попытка
ЗаписатьСообщения(ДанныеКонтекста, ЮТКоллекции.ЗначениеВМассиве(ЗначениеПроверки), Ложь);
ДанныеЗаписаны = Истина;
Исключение
Сообщение = СтрШаблон("Не удалось записать данные в лог файл: %1.
|Логирование в файл отключено", ДанныеКонтекста.ФайлЛога);
ЮТОбщий.СообщитьПользователю(Сообщение);
Если ДанныеКонтекста.ВыводВКонсоль Тогда
ЗаписатьЛогВКонсоль(Сообщение);
КонецЕсли;
ДанныеКонтекста.ФайлЛога = Неопределено;
ДанныеЗаписаны = Ложь;
КонецПопытки;

Если ДанныеЗаписаны И ЗначениеЗаполнено(ДанныеКонтекста.ФайлЛога) Тогда
ДанныеКонтекста.ФайлЛогаДоступенНаСервере = ЮТЛогированиеСлужебныйВызовСервера.ФайлЛогаДоступенНаСервере(ДанныеКонтекста.ФайлЛога,
ЗначениеПроверки);
КонецЕсли;

КонецПроцедуры

#КонецОбласти

0 comments on commit b924b2f

Please sign in to comment.