1
0
mirror of https://github.com/bia-technologies/yaxunit.git synced 2024-12-03 08:45:31 +02:00

#338 Онлайн логирование на сервере для файловых баз

This commit is contained in:
alkoleft 2024-05-27 02:13:08 +03:00
parent 05ea15025f
commit c4279c8151
7 changed files with 112 additions and 54 deletions

View File

@ -110,7 +110,13 @@
Возврат ЮТСлужебныйПовторногоИспользования.ПодключитьКомпоненту(ИмяМакета, ИмяКомпоненты);
КонецЕсли;
Возврат ПодключитьВнешнююКомпоненту(ИмяМакета, ИмяКомпоненты, ТипВнешнейКомпоненты.Native);
Если ЮТСтроки.ВерсияБольше(ЮТест.Окружение().ВерсияПлатформы, "8.3.20") Тогда
ТипПодключения = ЮТМетодыСлужебный.ВычислитьБезопасно("ТипПодключенияВнешнейКомпоненты.НеИзолированно");
//@skip-check many-actual-parameters
Возврат ПодключитьВнешнююКомпоненту(ИмяМакета, ИмяКомпоненты, ТипВнешнейКомпоненты.Native, ТипПодключения);
Иначе
Возврат ПодключитьВнешнююКомпоненту(ИмяМакета, ИмяКомпоненты, ТипВнешнейКомпоненты.Native);
КонецЕсли;
КонецФункции

View File

@ -34,7 +34,8 @@
#Если Клиент Тогда
ЗаписатьСообщения(Контекст, ЮТКоллекции.ЗначениеВМассиве(Текст));
#Иначе
Если Контекст.ФайлЛогаДоступенНаСервере Тогда
// Для серверной базы все равно нужно накапливать сообшения, если включен вывод в консоль
Если ЮТест.Окружение().ФайловаяБаза Или Контекст.ФайлЛогаДоступенНаСервере Тогда
ЗаписатьСообщения(Контекст, ЮТКоллекции.ЗначениеВМассиве(Текст));
Иначе
Контекст.НакопленныеЗаписи.Добавить(Текст);

View File

@ -21,49 +21,35 @@
// Собирает информацию об окружения, как сервера, так и клиента.
//
// Возвращаемое значение:
// Структура - Описание окружения:
// * ВерсияПлатформы - Строка
// * ФайловаяБаза - Булево
// * ОбычноеПриложение - Булево
// * ВебКлиент - Булево
// * ТолстыйКлиент - Булево
// * ЛокальПлатформы - Строка
// * ЛокальИнтерфейса - Строка
// * ОперационнаяСистемаКлиент - Строка - Возможные значения: Linux, Windows, MacOS
// * АрхитектураКлиент - Строка - Возможные значения: x86_64, i386
// * ОперационнаяСистемаСервер - Строка - Возможные значения: Linux, Windows, MacOS
// * АрхитектураСервер - Строка - Возможные значения: x86_64, i386
// * ВстроенныйЯзык - Строка - Возможные значения: ru, en
// * ИнформационнаяСреда - Строка
// см. ЮТФабрика.НовоеОписаниеОкружения
Функция ОписаниеОкружения() Экспорт
СистемнаяИнформация = Новый СистемнаяИнформация();
ОписаниеСерверногоОкружения = ЮТМетодыСлужебный.ВызватьФункциюКонфигурацииНаСервере("ЮТОкружениеСлужебныйКлиентСервер",
"ОписаниеСерверногоОкружения");
Окружение = Новый Структура;
Окружение.Вставить("Конфигурация", ОписаниеСерверногоОкружения.Конфигурация);
Окружение.Вставить("ВерсияКонфигурации", ОписаниеСерверногоОкружения.ВерсияКонфигурации);
Окружение.Вставить("ВерсияПлатформы", СистемнаяИнформация.ВерсияПриложения);
Окружение.Вставить("ИнформационнаяСреда", "DEV");
Окружение.Вставить("ТестовыйДвижок", ОписаниеСерверногоОкружения.ТестовыйДвижок);
Окружение.Вставить("ВерсияТестовогоДвижка", ОписаниеСерверногоОкружения.ВерсияТестовогоДвижка);
Окружение.Вставить("ЛокальПлатформы", ЛокальПлатформы());
Окружение.Вставить("ЛокальИнтерфейса", ЛокальИнтерфейса());
Окружение.Вставить("ВстроенныйЯзык", ОписаниеСерверногоОкружения.ВстроенныйЯзык);
Платформа = Платформа(СистемнаяИнформация);
Окружение.Вставить("ОперационнаяСистемаКлиент", Платформа.ОперационнаяСистема);
Окружение.Вставить("АрхитектураКлиент", Платформа.Архитектура);
Окружение.Вставить("ОперационнаяСистемаСервер", ОписаниеСерверногоОкружения.ОперационнаяСистема);
Окружение.Вставить("АрхитектураСервер", ОписаниеСерверногоОкружения.Архитектура);
Окружение = ЮТФабрика.НовоеОписаниеОкружения();
Окружение.Вставить("ФайловаяБаза", ЭтоФайловаяБаза());
Окружение.Вставить("ОбычноеПриложение", Ложь);
Окружение.Вставить("ВебКлиент", Ложь);
Окружение.Вставить("ТолстыйКлиент", Ложь);
Окружение.Конфигурация = ОписаниеСерверногоОкружения.Конфигурация;
Окружение.ВерсияКонфигурации = ОписаниеСерверногоОкружения.ВерсияКонфигурации;
Окружение.ВерсияПлатформы = СистемнаяИнформация.ВерсияПриложения;
Окружение.ИнформационнаяСреда = "DEV";
Окружение.ТестовыйДвижок = ОписаниеСерверногоОкружения.ТестовыйДвижок;
Окружение.ВерсияТестовогоДвижка = ОписаниеСерверногоОкружения.ВерсияТестовогоДвижка;
Окружение.ЛокальПлатформы = ЛокальПлатформы();
Окружение.ЛокальИнтерфейса = ЛокальИнтерфейса();
Окружение.ВстроенныйЯзык = ОписаниеСерверногоОкружения.ВстроенныйЯзык;
Окружение.ОперационнаяСистемаКлиент = Платформа.ОперационнаяСистема;
Окружение.АрхитектураКлиент = Платформа.Архитектура;
Окружение.ОперационнаяСистемаСервер = ОписаниеСерверногоОкружения.ОперационнаяСистема;
Окружение.АрхитектураСервер = ОписаниеСерверногоОкружения.Архитектура;
Окружение.ФайловаяБаза = ЭтоФайловаяБаза();
#Если ВебКлиент Тогда
Окружение.ВебКлиент = Истина;
@ -75,7 +61,7 @@
#КонецЕсли
//@skip-check use-non-recommended-method
Окружение.Вставить("ВремяЗапуска", ТекущаяДата()); // BSLLS:DeprecatedCurrentDate-off
Окружение.ВремяЗапуска = ТекущаяДата(); // BSLLS:DeprecatedCurrentDate-off
//@skip-check constructor-function-return-section
Возврат Окружение;
@ -95,7 +81,7 @@
Функция ЭтоФайловаяБаза()
Возврат СтрНайти(Врег(СтрокаСоединенияИнформационнойБазы()), "FILE=") = 0;
Возврат СтрНайти(Врег(СтрокаСоединенияИнформационнойБазы()), "FILE=") = 1;
КонецФункции

View File

@ -63,6 +63,18 @@
КонецПроцедуры
// Вызывается при сборе информации об окружении на клиенте.
// Позволяет дополнить описание окружения своими данными
//
// Параметры:
// ОписаниеОкружения - см. ЮТФабрика.НовоеОписаниеОкружения
Процедура СборИнформацииОбОкружении(ОписаниеОкружения) Экспорт
Параметры = ЮТКоллекции.ЗначениеВМассиве(ОписаниеОкружения);
ВызватьПодключаемыйОбработчикСобытия("СборИнформацииОбОкружении", "Инициализация", Параметры);
КонецПроцедуры
#КонецОбласти
#Область СобытияИсполненияТестов

View File

@ -210,6 +210,20 @@
КонецФункции
// Выполняет сравнение версий
//
// Параметры:
// ПроверяемаяВерсия - Строка - Проверяемая версия
// БазоваяВерсия - Строка - Базовая версия, с которой происходит сравнение
//
// Возвращаемое значение:
// Булево - Проверяемая версия больше базовой
Функция ВерсияБольше(ПроверяемаяВерсия, БазоваяВерсия) Экспорт
Возврат СравнитьВерсии(ПроверяемаяВерсия, БазоваяВерсия) > 0;
КонецФункции
// Проверяет, что переданное значение является строковым представлением уникального идентификатора
//
// Параметры:
@ -222,7 +236,7 @@
Если ТипЗнч(Значение) <> Тип("Строка") Тогда
Возврат Ложь;
КонецЕсли;
Шаблон = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";
Если СтрДлина(Шаблон) <> СтрДлина(Значение) Тогда
@ -243,7 +257,7 @@
КонецЦикла;
Возврат Истина;
КонецФункции
// Из набора строк формирует набор уникальных строк.

View File

@ -268,6 +268,58 @@
КонецФункции
// Новое описание окружения.
//
// Возвращаемое значение:
// Структура - Описание окружения:
// * Конфигурация - Строка -
// * ВерсияКонфигурации - Строка -
// * ВерсияПлатформы - Строка -
// * ИнформационнаяСреда - Строка -
// * ТестовыйДвижок - Строка -
// * ВерсияТестовогоДвижка - Строка -
// * ЛокальПлатформы - Строка -
// * ЛокальИнтерфейса - Строка -
// * ОперационнаяСистемаКлиент - Строка - Возможные значения: Linux, Windows, MacOS
// * АрхитектураКлиент - Строка - Возможные значения: x86_64, i386
// * ОперационнаяСистемаСервер - Строка - Возможные значения: Linux, Windows, MacOS
// * АрхитектураСервер - Строка - Возможные значения: x86_64, i386
// * ВстроенныйЯзык - Строка - Возможные значения: ru, en
// * ФайловаяБаза - Булево -
// * ОбычноеПриложение - Булево -
// * ВебКлиент - Булево -
// * ТолстыйКлиент - Булево -
// * ВремяЗапуска - Дата -
Функция НовоеОписаниеОкружения() Экспорт
Окружение = Новый Структура;
Окружение.Вставить("Конфигурация", "");
Окружение.Вставить("ВерсияКонфигурации", "");
Окружение.Вставить("ВерсияПлатформы", "");
Окружение.Вставить("ИнформационнаяСреда", "DEV");
Окружение.Вставить("ТестовыйДвижок", "YAxUnit");
Окружение.Вставить("ВерсияТестовогоДвижка", "");
Окружение.Вставить("ЛокальПлатформы", "");
Окружение.Вставить("ЛокальИнтерфейса", "");
Окружение.Вставить("ВстроенныйЯзык", "");
Окружение.Вставить("ОперационнаяСистемаКлиент", "");
Окружение.Вставить("АрхитектураКлиент", "");
Окружение.Вставить("ОперационнаяСистемаСервер", "");
Окружение.Вставить("АрхитектураСервер", "");
Окружение.Вставить("ФайловаяБаза", Ложь);
Окружение.Вставить("ОбычноеПриложение", Ложь);
Окружение.Вставить("ВебКлиент", Ложь);
Окружение.Вставить("ТолстыйКлиент", Ложь);
Окружение.Вставить("ВремяЗапуска", '00010101');
Возврат Окружение;
КонецФункции
#КонецОбласти
#Область СлужебныеПроцедурыИФункции

View File

@ -223,20 +223,7 @@
// Возвращает информацию об окружении.
//
// Возвращаемое значение:
// Структура - Описание окружения:
// * ВерсияПлатформы - Строка
// * ФайловаяБаза - Булево
// * ОбычноеПриложение - Булево
// * ВебКлиент - Булево
// * ТолстыйКлиент - Булево
// * ЛокальПлатформы - Строка
// * ЛокальИнтерфейса - Строка
// * ОперационнаяСистемаКлиент - Строка - Возможные значения: Linux, Windows, MacOS
// * АрхитектураКлиент - Строка - Возможные значения: x86_64, i386
// * ОперационнаяСистемаСервер - Строка - Возможные значения: Linux, Windows, MacOS
// * АрхитектураСервер - Строка - Возможные значения: x86_64, i386
// * ВстроенныйЯзык - Строка - Возможные значения: ru, en
// * ИнформационнаяСреда - Строка
// см. ЮТФабрика.НовоеОписаниеОкружения
Функция Окружение() Экспорт
//@skip-check constructor-function-return-section