Сервер 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'), который доступен и на бэкенде, и на фронтенде.