Централизованное хранилище логов.
Принимает логи от logging.handlers.HTTPHandler
и записывает их во внутренние файлы.
Логи записываются в каждый файл, соответствующий текущему дню, логи за прошедший день хранятся в отдельных файлах. По умолчанию, хранятся логи за неделю.
С помощью этого решения можно удобно хранить логи от всех приложений в одном месте.
import logging
ip_address = "127.0.0.1"
port = "5000"
path = "/dev/application"
http_handler = logging.handlers.HTTPHandler(f"{ip_address}:{port}", path, method='POST')
logger = logging.getLogger()
logger.addHandler(http_handler)
Перед запуском надо сконфигурировать сервер на ваше усмотрение. Надо скопировать содержимое .env.template
в .env
- Добавить приложения
Чтобы добавить новый модуль для логов, надо в
.env
вAPPS
перечислить через запятую названия приложений.После старта приложение будет автоматически добавлено в обе среды:APPS=app APPS=app1,app2 APPS=app1, app2,app3
prod
иdev
- Конфигурация путей к
openapi.json
DOCS=/docs REDOC=/redoc
- Редактирование тэгов
prod
и/илиdev
TAG_PROD=production TAG_DEV=developers
- Редакирование префикса
/dev
и/или/prod
server.ru/PREFIX/your_app
PREFIX_PROD=/api/logs/prod PREFIX_DEV=/api/logs/dev
server.ru/api/logs/dev/your_app
- Настройка журналирования
Подробнее о форматировании...
# Новый файл каждый день LOG_WHEN=D LOG_INTERVAL=1 # Количество файлов LOG_BACKUP_COUNT=7 # Время в которое будет создаваться новый файл LOG_AT_TIME=midnight # Форматирование логов LOG_FORMAT=%(asctime)s : %(levelname)s : %(message)s
- Обработка
exception
- Обработка
extra
- WebUI. Там надо будет реализовать стриминг файла в браузер.