Статья рассказывает об особенностях настройки службы логирования в BNComplex (НИС-Платформа).
При запуске новой службы возникает вопрос по настройке ее журналирования (сохранения логов), ибо это единственный способ достоверно узнать, нормально ли работает служба. Стандартный подход в продуктах серии BNComplex это использование отдельной службы для ведения журналов всех остальных служб. Такой подход позволяет оптимизировать нагрузку на диск за счет сокращения количества обращений к нему.
Для этого, в ini файле каждой службы в блоке [Common] есть параметры, отвечающие за логирование, в которых и производятся настройки.
параметр | описание | Log Name=C:\Logs\NP_TrackInfoSender.log | Указывается путь до файла лога, если не указана настройка для службы логирования | Logger IP=127.0.0.1 | Адрес сервера, где установлена служба логирования | Logger Port=7001 | Адрес порта, где установлена служба логирования | ID For Logger=8 | Идентификатор лога для службы логирования. Каждая служба должна иметь уникальный идентификатор. Если для разных служб используется один и тот же идентификатор, то они будут писать свои логи в один и тот же файл. |
На начальном этапе запуска службы нужно использовать именно ее средства для записи журналов. Для этого параметр Logger IP следует "закомментировать", добавив перед ним точку с запятой
Этим самым вы скажите службе, что следует использовать именно ее саму для записи логов, т.е. логи будут писаться туда, куда их направит значение параметра Log Name. Проверьте, что путь до файла существует (все каталоги перед ним существуют). Сам файл может и не существовать. Для проверки путей в ini можно использовать данный файл.
Для принятия новых параметров (после редактирования файла ini) службу следует перезапусить, а после настройки логирования - удалить файл-флаг повторного чтения настроек (путь к нему настраивается в [Common] параметрами Flags Dir и Config Flag Name) - типичный каталог "C:\BNComplex\CfgFlags"
После того, как вы настроили службу, можно приступать к настройке ведения журналов ее работы посредством службы Logger Service. Для этого вам придется править сразу два файла - настройку самой службы логирования (LoggerService.ini) и настройку самой службы (ini файл в каталоге службы). Для упрощения будем считать, что службы все запускаются на одном и том же сервере (т.е. "слушают" адрес 127.0.0.1).
Так как вы настраиваете новую службу, то сначала следует определиться с ID For Logger. Для этого нужно открыть файл LoggerService.ini и просмотреть, какие блоки уже в нем есть (в моем случае это были блоки [0-7], потому добавлялся именно 8). Номер блока следует добавлять именно следующий по нумерации. Нельзя пропустить часть блоков, и сделать например сразу [Log ID 100], не сделав перед этим блоки с 0 по 99. В этом случае писаться будут только логи блоков, идущих подряд с нуля, а все прочие службы будут оставаться без записи журналов своей работы!
Названия параметров в данной таблице приводятся с указанием названия блока, в котором они находятся.
параметр в logerservice.ini | Описание | параметр в ini службы | [UDP] Listen IP Address=127.0.0.1 | Адрес на котором "живет" служба | [Common] Logger IP=127.0.0.1 | [UDP] Port Number=7001 | Порт службы | [Common] Logger Port=7001 |
| ID блока [Log ID X] | [Common] ID For Logger=8 | вставить блок |
|
| [Log ID 8] | номер блока 8 передается службой из параметра ID For Logger |
| [Log ID 8] Log Path=<ПутьКФайлу> | путь до файла с логом для службы |
| [Log ID 8] Alert Name=TrackInfoSender | Произвольная строка * идентифицирующая службу |
| [Log ID 8] Net ID=TrackInfoSender | Произвольная строка * идентифицирующая службу |
| * описание назначения параметров Alert Name и Net ID можно изучать в документации службы Logger Service.Все строки параметров должны быть активными, т.е. в них или перед ними не должно быть точек с запятой.
В таблице одинаковыми цветами выделены одинаково настраиваемые параметры.
После изменения LoggerService.ini и ini службы, следует дать команду на повторное чтение настроек (см. выше). Сначала для Logger Service, а потом для настраиваемой вами службы. Если вы сделали все правильно, логи должны начаться писаться посредством службы
FAQ:В: Служба не пишет свой лог.
О: 1. Отключаем запись лога посредством Logger Service, для этого перед параметром Logger IP в блоке [Common] поставьте точку с запятой 2. Проверьте, что параметр Log Name из блока [Common] указывает на существующий каталог 3. Перезапустите службу. 4. Теперь служба должна писать свои логи в файл, указанный в Log Name - если записи в файле появляются - значит проблема именно в связи со службой Logger Service. 5. Проверяем полностью все настройки (настраиваем), как описано в статье выше (особенно следует проверять пути к файлам логов, пропуски в нумерации блоков в LoggerService.ini, наличие прав для "системы" на данные файлы/каталоги).
В: В файле журнала (логе) содержится информацию от двух (или более) служб.
О: Две разных службы используют один и тот же параметр ID For Logger в своей настройке. Настройте службы на разные ID For Logger как описано в данной статье.
В: Можно ли подключиться к Logger Service, что бы посмотреть какие данные в нее поступают? О: Можно. Используйте на сервере программу telnet. Запустите команду: telnet 127.0.0.1 7001 далее 4-е раза нажать Ctrl+D (описано в инструкции по работе со службой Logger Service)
(если команда не запускается - включите ее в компонентах Windows - называется "telnet-клиент" или аналогично).
Источник: BNComplex, NIS, логирование, журналы, службы, настройка |