Skip to content

Commit 068a287

Browse files
committed
Merge branch 'develop'
2 parents 7b22a18 + 4a35ee3 commit 068a287

File tree

7 files changed

+49
-17
lines changed

7 files changed

+49
-17
lines changed

.vscode/tasks.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,14 @@
1111
"_runner": "terminal",
1212
"windows": {
1313
"command": "cmd",
14-
"args": ["/c", "chcp 65001 ;"]
14+
"args": ["/c", "chcp", "65001", ";"]
1515
},
1616
"linux": {
1717
"command": "sh",
1818
"args": ["-c"]
1919
},
2020
"isShellCommand": true,
2121
// "showOutput": "silent",
22-
"_runner": "terminal",
2322
"tasks": [
2423
{
2524
"taskName": "Testing project",

packagedef

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11

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

1010
// vim: filetype=onescript

src/console-appender.os

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,11 @@
44
//
55
//////////////////////////////////////////////////////////////////////////
66

7-
Процедура Вывести(Знач Сообщение) Экспорт
7+
Перем КартаСтатусовИУровней;
8+
9+
Процедура Вывести(Знач Сообщение, УровеньСообщения) Экспорт
810

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

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

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

2123
КонецПроцедуры // УстановитьСвойство()
24+
25+
КартаСтатусовИУровней = Новый Соответствие;
26+
КартаСтатусовИУровней.Вставить(УровниЛога.Отладка, СтатусСообщения.БезСтатуса);
27+
КартаСтатусовИУровней.Вставить(УровниЛога.Информация, СтатусСообщения.Обычное);
28+
КартаСтатусовИУровней.Вставить(УровниЛога.Предупреждение, СтатусСообщения.Внимание);
29+
КартаСтатусовИУровней.Вставить(УровниЛога.Ошибка, СтатусСообщения.Важное);
30+
КартаСтатусовИУровней.Вставить(УровниЛога.КритичнаяОшибка, СтатусСообщения.ОченьВажное);

src/file-appender.os

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
мФайлЛога = Новый ЗаписьТекста(Путь, Кодировка,,Добавлять);
1111
КонецПроцедуры
1212

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

32-
Функция ПроверитьИнициализацию()
32+
Процедура ПроверитьИнициализацию()
3333
Если мФайлЛога = Неопределено Тогда
3434
ВызватьИсключение "Не открыт файл лога";
3535
КонецЕсли;
36-
КонецФункции
36+
КонецПроцедуры

src/log.os

Lines changed: 29 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -68,12 +68,30 @@
6868
НастройкаСпособаВывода = НоваяНастройкаСпособаВывода(НовыйУровень, ЗаданЯвно);
6969
мУровниАппендеров[СпособВывода] = НастройкаСпособаВывода;
7070

71+
ПроверитьПоддержкуAPIВывести(СпособВывода, НастройкаСпособаВывода);
72+
73+
КонецПроцедуры
74+
75+
Процедура ПроверитьПоддержкуAPIВывести(СпособВывода, НастройкаСпособаВывода)
76+
Рефлектор = Новый Рефлектор;
77+
Методы = Рефлектор.ПолучитьТаблицуМетодов(СпособВывода);
78+
МетодВывести = Методы.Найти("Вывести");
79+
Если МетодВывести <> Неопределено Тогда
80+
Если МетодВывести.КоличествоПараметров = 2 Тогда
81+
НастройкаСпособаВывода.ВерсияAPI = 2;
82+
Иначе
83+
Сообщить("Число параметров:" + МетодВывести.КоличествоПараметров);
84+
СпособВывода.Вывести("Метод Вывести должен иметь 2 параметра.
85+
|В будущих версиях logos данный способ вывода перестанет работать.");
86+
КонецЕсли;
87+
КонецЕсли;
7188
КонецПроцедуры
7289

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

7592
Для Сч = 0 По мСпособыВывода.Количество()-1 Цикл
7693
Если мСпособыВывода[Сч] = СпособВывода Тогда
94+
мУровниАппендеров.Удалить(СпособВывода);
7795
СпособВывода.Закрыть();
7896
мСпособыВывода.Удалить(Сч);
7997
Прервать;
@@ -155,9 +173,14 @@
155173
Если УровеньСообщения >= Уровень() Тогда
156174
ВыводимоеСообщение = мРаскладкаСообщения.Форматировать(УровеньСообщения, Сообщение);
157175
Для Каждого СпособВывода Из мСпособыВывода Цикл
158-
УровеньСпособаВывода = мУровниАппендеров[СпособВывода].Уровень;
176+
НастройкаАппендера = мУровниАппендеров[СпособВывода];
177+
УровеньСпособаВывода = НастройкаАппендера.Уровень;
159178
Если УровеньСпособаВывода = Неопределено Или УровеньСообщения >= УровеньСпособаВывода Тогда
160-
СпособВывода.Вывести(ВыводимоеСообщение);
179+
Если НастройкаАппендера.ВерсияAPI = 2 Тогда
180+
СпособВывода.Вывести(ВыводимоеСообщение, УровеньСообщения);
181+
Иначе
182+
СпособВывода.Вывести(ВыводимоеСообщение);
183+
КонецЕсли;
161184
КонецЕсли;
162185
КонецЦикла;
163186
КонецЕсли;
@@ -210,13 +233,14 @@
210233

211234
ВыводПоУмолчанию = Новый ВыводЛогаВКонсоль();
212235
мСпособыВывода.Добавить(ВыводПоУмолчанию);
213-
мУровниАппендеров[ВыводПоУмолчанию] = НоваяНастройкаСпособаВывода(Уровень(), Ложь);
214-
236+
НастройкаСпособаВывода = НоваяНастройкаСпособаВывода(Уровень(), Ложь);
237+
мУровниАппендеров[ВыводПоУмолчанию] = НастройкаСпособаВывода;
238+
215239
КонецПроцедуры
216240

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

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

222246
КонецФункции

tests/fixtures/appender-debug.os

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
////////////////////////////
88
// Методы аппендера
99

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

tests/logos-test.os

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,7 @@
247247
КонецПроцедуры
248248

249249
Процедура ДобавитьСебяКакОбработчикаВывода(Знач НовыйУровень = Неопределено)
250-
250+
251251
мСообщенияЛога = Новый Массив;
252252
Лог.ДобавитьСпособВывода(ЭтотОбъект, НовыйУровень);
253253

@@ -467,7 +467,7 @@
467467
////////////////////////////
468468
// Методы аппендера
469469

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

0 commit comments

Comments
 (0)