Сервер BOOCO Astra (v 2.x) / master-logger
Установка, запуск, остановка микросервиса master-logger
Описание переменных .env для master-logger
◼ Настройка журналирования для нужных микросервисов в файле logger.yml
REST API (Swagger) — master-logger
‣
Журналирование настраивается на двух уровнях:
На уровне большинства микросервисов можно настроить:
Это делается в файле logger.yml
(индивидуального для каждого микросервиса).
Пример с выводом всех сообщений в консоль микросервиса и отправкой в брокер только сообщений с уровнями ERROR
(ошибки), INFO
(информационные сообщения), WARN
(предупреждения):
logger:
console:
level: [ all ]
context: [ all ]
broker:
level: [ ERROR, INFO, WARN ]
context: [ all ]
<aside>
💡 В каждом файле docker-compose.yml **микросервисов находится строка для прикрепления файла logger.yml
в контейнер, ее необходимо раскомментировать и перезапустить контейнер.
</aside>
volumes:
- ./logger.yml:/data/logger.yml
Для микросервиса master-logger есть свой файл logger.yml
, в котором настраиваются действия с логами каждого микросервиса:
db
— сохранять в базе данных;console
— выводить в консоль микросервиса master-logger (чтобы в одном месте смотреть все интересующие логи).Названия микросервисов (rest-api-v1
, bosql
, trigger-factory
и др.) берутся из поля source
, в котором указывается имя микросервиса, который является источником события.
Пример с сохранением в базе данных всех сообщений с уровнем ERROR
независимо от контекста и выводом всех сообщений в консоль микросервиса master-logger:
rest-api-v1:
db:
level: [ error ]
context: [ all ]
console:
level: [ all ]
context: [ all ]
bosql:
db:
level: [ error ]
context: [ all ]
console:
level: [ all ]
context: [ all ]
trigger-factory:
db:
level: [ error ]
context: [ all ]
console:
level: [ all ]
context: [ all ]
BOOCO может работать в двух режимах:
booco/log
через микросервис **bosql** и читаются из этой же таблицы.booco_log/log
через master-logger.Настройте режим публикации сообщений Журнала через master-logger. Для этого в файле booco.yml
нужно отключить логирование через db
и включить логирование через broker
:
loggers:
console:
enable: true
db:
enable: false # ВАЖНО!
broker:
enable: true
exchange: booco.log
Сделайте так, чтобы Журнал забирался не с bosql, а через master-logger. Для этого настройте URL, по которому будут запрашиваться логи: в файле .env
добавьте переменную LOG_URL
, которая указывает на API сервиса master-logger, например: LOG_URL=http://localhost:3001
.
Уведомления об изменениях Журнала работают в обоих случаях одинаково: микросервисы bosql и master-logger публикуют их в брокере в стандартный exchange.
Если используются дополнительные микросервисы и настроено журналирование на уровне микросервиса master-logger, то в Журнале на сервере BOOCO:
booco
).Список дополнительных микросервисов берется из файла booco.yml
:
log:
services:
- bosql
- exchange-sync
- ldap-access
- trigger-factory
- rest-api-v1
Получить список микросервисов можно при помощи метода getConfig('log.services')
, который доступен и на бэкенде, и на фронтенде.