Skip to content

Commit

Permalink
Merge branch 'develop' of https://github.com/oscript-library/logos in…
Browse files Browse the repository at this point in the history
…to develop
  • Loading branch information
artbear committed May 28, 2018
2 parents 0b4db5d + e19e3d3 commit 4a35ee3
Show file tree
Hide file tree
Showing 6 changed files with 46 additions and 13 deletions.
4 changes: 2 additions & 2 deletions packagedef
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@

Описание.Имя("logos")
.Версия("1.0.2")
.Версия("1.1")
.ЗависитОт("asserts", "0.4.0")
.ВключитьФайл("src")
.ВключитьФайл("tests")
.ВключитьФайл("lib.config")
.ВерсияСреды("1.0.17")
.ВерсияСреды("1.0.20")

// vim: filetype=onescript
13 changes: 11 additions & 2 deletions src/console-appender.os
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,11 @@
//
//////////////////////////////////////////////////////////////////////////

Процедура Вывести(Знач Сообщение) Экспорт
Перем КартаСтатусовИУровней;

Процедура Вывести(Знач Сообщение, УровеньСообщения) Экспорт

Сообщить(Сообщение);
Сообщить(Сообщение, КартаСтатусовИУровней[УровеньСообщения]);

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

Expand All @@ -19,3 +21,10 @@
Процедура УстановитьСвойство(Знач ИмяСвойства, Знач Значение) Экспорт

КонецПроцедуры // УстановитьСвойство()

КартаСтатусовИУровней = Новый Соответствие;
КартаСтатусовИУровней.Вставить(УровниЛога.Отладка, СтатусСообщения.БезСтатуса);
КартаСтатусовИУровней.Вставить(УровниЛога.Информация, СтатусСообщения.Обычное);
КартаСтатусовИУровней.Вставить(УровниЛога.Предупреждение, СтатусСообщения.Внимание);
КартаСтатусовИУровней.Вставить(УровниЛога.Ошибка, СтатусСообщения.Важное);
КартаСтатусовИУровней.Вставить(УровниЛога.КритичнаяОшибка, СтатусСообщения.ОченьВажное);
2 changes: 1 addition & 1 deletion src/file-appender.os
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
мФайлЛога = Новый ЗаписьТекста(Путь, Кодировка,,Добавлять);
КонецПроцедуры

Процедура Вывести(Знач Сообщение) Экспорт
Процедура Вывести(Знач Сообщение, Знач УровеньСообщения) Экспорт
ПроверитьИнициализацию();
мФайлЛога.ЗаписатьСтроку(Сообщение);
КонецПроцедуры
Expand Down
34 changes: 29 additions & 5 deletions src/log.os
Original file line number Diff line number Diff line change
Expand Up @@ -68,12 +68,30 @@
НастройкаСпособаВывода = НоваяНастройкаСпособаВывода(НовыйУровень, ЗаданЯвно);
мУровниАппендеров[СпособВывода] = НастройкаСпособаВывода;

ПроверитьПоддержкуAPIВывести(СпособВывода, НастройкаСпособаВывода);

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

Процедура ПроверитьПоддержкуAPIВывести(СпособВывода, НастройкаСпособаВывода)
Рефлектор = Новый Рефлектор;
Методы = Рефлектор.ПолучитьТаблицуМетодов(СпособВывода);
МетодВывести = Методы.Найти("Вывести");
Если МетодВывести <> Неопределено Тогда
Если МетодВывести.КоличествоПараметров = 2 Тогда
НастройкаСпособаВывода.ВерсияAPI = 2;
Иначе
Сообщить("Число параметров:" + МетодВывести.КоличествоПараметров);
СпособВывода.Вывести("Метод Вывести должен иметь 2 параметра.
|В будущих версиях logos данный способ вывода перестанет работать.");
КонецЕсли;
КонецЕсли;
КонецПроцедуры

Процедура УдалитьСпособВывода(Знач СпособВывода) Экспорт

Для Сч = 0 По мСпособыВывода.Количество()-1 Цикл
Если мСпособыВывода[Сч] = СпособВывода Тогда
мУровниАппендеров.Удалить(СпособВывода);
СпособВывода.Закрыть();
мСпособыВывода.Удалить(Сч);
Прервать;
Expand Down Expand Up @@ -155,9 +173,14 @@
Если УровеньСообщения >= Уровень() Тогда
ВыводимоеСообщение = мРаскладкаСообщения.Форматировать(УровеньСообщения, Сообщение);
Для Каждого СпособВывода Из мСпособыВывода Цикл
УровеньСпособаВывода = мУровниАппендеров[СпособВывода].Уровень;
НастройкаАппендера = мУровниАппендеров[СпособВывода];
УровеньСпособаВывода = НастройкаАппендера.Уровень;
Если УровеньСпособаВывода = Неопределено Или УровеньСообщения >= УровеньСпособаВывода Тогда
СпособВывода.Вывести(ВыводимоеСообщение);
Если НастройкаАппендера.ВерсияAPI = 2 Тогда
СпособВывода.Вывести(ВыводимоеСообщение, УровеньСообщения);
Иначе
СпособВывода.Вывести(ВыводимоеСообщение);
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Expand Down Expand Up @@ -210,13 +233,14 @@

ВыводПоУмолчанию = Новый ВыводЛогаВКонсоль();
мСпособыВывода.Добавить(ВыводПоУмолчанию);
мУровниАппендеров[ВыводПоУмолчанию] = НоваяНастройкаСпособаВывода(Уровень(), Ложь);

НастройкаСпособаВывода = НоваяНастройкаСпособаВывода(Уровень(), Ложь);
мУровниАппендеров[ВыводПоУмолчанию] = НастройкаСпособаВывода;

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

Функция НоваяНастройкаСпособаВывода(Знач НовыйУровень, Знач ЗаданЯвно)

НастройкаСпособаВывода = Новый Структура("Уровень, ЗаданЯвно", НовыйУровень, ЗаданЯвно);
НастройкаСпособаВывода = Новый Структура("Уровень, ЗаданЯвно, ВерсияAPI", НовыйУровень, ЗаданЯвно, Неопределено);
Возврат НастройкаСпособаВывода;

КонецФункции
Expand Down
2 changes: 1 addition & 1 deletion tests/fixtures/appender-debug.os
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
////////////////////////////
// Методы аппендера

Процедура Вывести(Знач Сообщение) Экспорт
Процедура Вывести(Знач Сообщение, Знач УровеньВывода) Экспорт
мСообщенияЛога.Добавить(Сообщение);
КонецПроцедуры

Expand Down
4 changes: 2 additions & 2 deletions tests/logos-test.os
Original file line number Diff line number Diff line change
Expand Up @@ -247,7 +247,7 @@
КонецПроцедуры

Процедура ДобавитьСебяКакОбработчикаВывода(Знач НовыйУровень = Неопределено)

мСообщенияЛога = Новый Массив;
Лог.ДобавитьСпособВывода(ЭтотОбъект, НовыйУровень);

Expand Down Expand Up @@ -467,7 +467,7 @@
////////////////////////////
// Методы аппендера

Процедура Вывести(Знач Сообщение) Экспорт
Процедура Вывести(Знач Сообщение, УровеньСообщения) Экспорт
мСообщенияЛога.Добавить(Сообщение);
КонецПроцедуры

Expand Down

0 comments on commit 4a35ee3

Please sign in to comment.