Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
EvilBeaver committed May 29, 2018
2 parents 7b22a18 + 4a35ee3 commit 068a287
Show file tree
Hide file tree
Showing 7 changed files with 49 additions and 17 deletions.
3 changes: 1 addition & 2 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,14 @@
"_runner": "terminal",
"windows": {
"command": "cmd",
"args": ["/c", "chcp 65001 ;"]
"args": ["/c", "chcp", "65001", ";"]
},
"linux": {
"command": "sh",
"args": ["-c"]
},
"isShellCommand": true,
// "showOutput": "silent",
"_runner": "terminal",
"tasks": [
{
"taskName": "Testing project",
Expand Down
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 @@
Процедура УстановитьСвойство(Знач ИмяСвойства, Знач Значение) Экспорт

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

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

Процедура Вывести(Знач Сообщение) Экспорт
Процедура Вывести(Знач Сообщение, Знач УровеньСообщения) Экспорт
ПроверитьИнициализацию();
мФайлЛога.ЗаписатьСтроку(Сообщение);
КонецПроцедуры
Expand All @@ -29,8 +29,8 @@
КонецЕсли;
КонецПроцедуры // УстановитьСвойство()

Функция ПроверитьИнициализацию()
Процедура ПроверитьИнициализацию()
Если мФайлЛога = Неопределено Тогда
ВызватьИсключение "Не открыт файл лога";
КонецЕсли;
КонецФункции
КонецПроцедуры
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 068a287

Please sign in to comment.