diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 751999f15..2cd3fae43 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -82,13 +82,10 @@ // ПараметрыЗапуска - см. ЮТФабрика.ПараметрыЗапуска Процедура Инициализация(ПараметрыЗапуска) Экспорт - УровниЛога = ЮТЛогирование.УровниЛога(); - ДанныеКонтекста = НовыйДанныеКонтекста(); ДанныеКонтекста.ФайлЛога = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапуска.logging, "file"); ДанныеКонтекста.ВыводВКонсоль = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапуска.logging, "console", Ложь); ДанныеКонтекста.Включено = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапуска.logging, "enable", Неопределено); - УровеньЛога = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапуска.logging, "level", УровниЛога.Отладка); Если ДанныеКонтекста.Включено = Неопределено Тогда ДанныеКонтекста.Включено = ДанныеКонтекста.ВыводВКонсоль ИЛИ ЗначениеЗаполнено(ДанныеКонтекста.ФайлЛога); @@ -99,28 +96,8 @@ Возврат; КонецЕсли; - Если СтрСравнить(УровеньЛога, УровниЛога.Ошибка) = 0 Тогда - ДанныеКонтекста.УровеньЛога = 99; - ИначеЕсли СтрСравнить(УровеньЛога, УровниЛога.Информация) = 0 Тогда - ДанныеКонтекста.УровеньЛога = 10; - ИначеЕсли СтрСравнить(УровеньЛога, УровниЛога.Предупреждение) = 0 Тогда - ДанныеКонтекста.УровеньЛога = 20; - Иначе - ДанныеКонтекста.УровеньЛога = 0; - КонецЕсли; - - ЗначениеПроверки = Строка(Новый УникальныйИдентификатор()); - Попытка - ЗаписатьСообщения(ДанныеКонтекста, ЮТКоллекции.ЗначениеВМассиве(ЗначениеПроверки), Ложь); - ДанныеЗаписаны = Истина; - Исключение - ДанныеЗаписаны = Ложь; - КонецПопытки; - - Если ДанныеЗаписаны И ЗначениеЗаполнено(ДанныеКонтекста.ФайлЛога) Тогда - ДанныеКонтекста.ФайлЛогаДоступенНаСервере = ЮТЛогированиеСлужебныйВызовСервера.ФайлЛогаДоступенНаСервере(ДанныеКонтекста.ФайлЛога, - ЗначениеПроверки); - КонецЕсли; + ОпределитьУровеньЛоги(ДанныеКонтекста, ПараметрыЗапуска); + ОпределитьДоступностьЛогированияВФайл(ДанныеКонтекста); ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(ИмяКонтекстаЛогирования(), ДанныеКонтекста, Истина); @@ -412,4 +389,45 @@ #КонецОбласти +Процедура ОпределитьУровеньЛоги(ДанныеКонтекста, ПараметрыЗапуска) + + УровниЛога = ЮТЛогирование.УровниЛога(); + УровеньЛога = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапуска.logging, "level", УровниЛога.Отладка); + + Если СтрСравнить(УровеньЛога, УровниЛога.Ошибка) = 0 Тогда + ДанныеКонтекста.УровеньЛога = 99; + ИначеЕсли СтрСравнить(УровеньЛога, УровниЛога.Информация) = 0 Тогда + ДанныеКонтекста.УровеньЛога = 10; + ИначеЕсли СтрСравнить(УровеньЛога, УровниЛога.Предупреждение) = 0 Тогда + ДанныеКонтекста.УровеньЛога = 20; + Иначе + ДанныеКонтекста.УровеньЛога = 0; + КонецЕсли; + +КонецПроцедуры + +Процедура ОпределитьДоступностьЛогированияВФайл(ДанныеКонтекста) + + ЗначениеПроверки = Строка(Новый УникальныйИдентификатор()); + Попытка + ЗаписатьСообщения(ДанныеКонтекста, ЮТКоллекции.ЗначениеВМассиве(ЗначениеПроверки), Ложь); + ДанныеЗаписаны = Истина; + Исключение + Сообщение = СтрШаблон("Не удалось записать данные в лог файл: %1. + |Логирование в файл отключено", ДанныеКонтекста.ФайлЛога); + ЮТОбщий.СообщитьПользователю(Сообщение); + Если ДанныеКонтекста.ВыводВКонсоль Тогда + ЗаписатьЛогВКонсоль(Сообщение); + КонецЕсли; + ДанныеКонтекста.ФайлЛога = Неопределено; + ДанныеЗаписаны = Ложь; + КонецПопытки; + + Если ДанныеЗаписаны И ЗначениеЗаполнено(ДанныеКонтекста.ФайлЛога) Тогда + ДанныеКонтекста.ФайлЛогаДоступенНаСервере = ЮТЛогированиеСлужебныйВызовСервера.ФайлЛогаДоступенНаСервере(ДанныеКонтекста.ФайлЛога, + ЗначениеПроверки); + КонецЕсли; + +КонецПроцедуры + #КонецОбласти