Логер сообщений для 1С

log
1c

#1

Народ, кто-нибудь делал какой-нибудь логгер для 1С?
показ сообщений разных статусов через единое АПИ, как, например, у нас в logos

Хочется некий аналог https://github.com/oscript-library/logos

я хочу единую точку входа по записи лога.
далее движок логера самостоятельно выдает сообщения в нужные потоки - пользователю (СообщениеПользователю/Сообщить), ЖР, файл и другие каналы

Чтобы писать не только в стандартный журнал, а дополнительно в файлик или еще куда
ну и совместить Сообщить и ЗаписатьВЖР

Nikita Gryzlov @nixel2007 10:45
Из жр в эластик?

Evhen Sosna @pumbaEO 10:45
а потом собирать данные из ЖР (о факт. записанных данных БД) и свой файлик и сопоставлять.

Начало в https://gitter.im/EvilBeaver/oscript-library?at=59facc6bd6c36fca31c79ef1


#2

Мы только ЖР, ТЖ и ключевые операции в грейлог складываем пока.
Само логирование пока не регламентировали. Стат. анализа пока нет с автоматическим контролем, так народ еще от Сообщить() еще даже не отучен)


#3

Я писал аналог библиотеки PHP monolog (https://github.com/Seldaek/monolog), но оно под НДА.

Давно хочу выпустить в опенсорс, пока не знаю как с юридической точки зрения это сделать. Может написать заново с новыми доп требованиями


#4

Да, лучше написать, интересно было бы получить такое решение.


#6

Помнится что в БСП был какой-то аналог/отгрызок этого


#7

Подробнее можешь подсказать, что и как в БСП?
с чего начинать осмотр БСП :slight_smile: ?


#8

УРА, я реализовал логер на базе logos с помощью набора встроенных обработок в рамках рабочей задачи

Настройка лога в шаге фичи

&НаСервере
Процедура ПроверитьАвторизацию_Сервер(Путь, Логин, Пароль) Экспорт

НастройкиЛогирования = Обработки.НастройкиЛогированияЛог.Создать();
НастройкиЛогирования.ЗаписатьВКонфигурацию(“Модуль1САПИ”, НастройкиЛогирования.УровниЛога.Отладка);

//Обычный вызов боевого кода, у которого где-то внутри используется Лог.Отладка, Информация и прочее - см.ниже

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

Создание лога в боевом коде

МенеджерЛогирования = Обработки.МенеджерЛогированияЛог.Создать();
Лог = МенеджерЛогирования.ПолучитьЛог(“Модуль1САПИ”);

и обычный вызов внутри боевого кода

Лог.Информация(“Создаю пользователя ЛогинАвторизации <%1>”, ЛогинАдминистратора);
Лог.Отладка(“СоздатьПользователя - ЛогинАвторизации <%1>”, ЛогинАдминистратора);


#9

Класс и я хочу так писать :slight_smile:
Ждем рабочий пример


#10

@lustin @nixel2007 Коллеги, будем выкладывать полученное решение в виде исходников конфигурации в Гитхаб-репозитории организации silverbulleters ?


#11

Зачем ты вообще тогда открыл эту тему, если не собирался делится?


#12

Я сначала и не думал делиться, у меня вообще ничего не было, я хотел как раз взять что-то готовое :slight_smile:


#13

Придумайте название репо, пожалуйста!

  • logger ?
  • vlogger ?
  • vanlog ?
  • vriter ? :slight_smile:

У меня с названиями плохо - 1logger на язык просится, но мы же помним :slight_smile:


#14

только не надо 1 в начале.


#15

Про нелюбовь многих к 1 я знаю, поэтому и смайлик добавил.

Варианты, нужны варианты?
Как корабль назовешь :slight_smile:


#16

Когда я переводил asserts на конфигурацию, я думал не долго - asserts_cf
Это же тоже самое апи и тот же код, просто другая обёртка над ним. Зачем ему новое название.


#17

Исходники подсистемы выложены в репозиторий https://github.com/silverbulleters/logos-1c


#18

Попробовал https://github.com/silverbulleters/logos-1c17, то-то не получается применить разные настройки к разным журнал логов, такое ощущение что последняя настройка для журнала перезаписывает все настройки для других журналов?

Т.е. реально сейчас настроить только rootLogger, а если несколько журналов то нет, может в процедуре ЗаписатьВКонфигурацию( в месте где сохраняются настройки

ХранилищеОбщихНастроек.Сохранить(КлючНастройкиХранилища(), , ТекстовыйДокумент);

нужно добавить ИмяЛога

ХранилищеОбщихНастроек.Сохранить(КлючНастройкиХранилища() + “_”+ ИмяЛога, , ТекстовыйДокумент);


#19

Хорошее замечание.

Я пока код не смотрел, но, действительно, очень похоже на присутствие этой проблемы.
Я лично пока сразу юзал включение общего режима Отладки.

Я вообще сторонник всегда включенного полного/отладочного лога для показа на CI, в регламентных заданиях, т.е. везде, где работает автоматически, а человек может подключаться постфактум

Нужно исправлять в 2х местах

  1. Сохранение настройки - метод ЗаписатьВКонфигурацию

  2. Возможно, В обработке Логирование в одном из методов (неточно - ПрочитатьНастройки) добавить/исправить проверку для отдельного лога


#20

Вот ещё для удобства момент когда журнала несколько но пишется всё в один файл, может писать Имя лога журнала в начале сообщения, чтобы понимать от какого журнала это сообщение


#21

Как раз такие вещи должны делать аппендеры или способы вывода