Централизованное хранилище логов.
Принимает логи от 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,app3prodиdev - Конфигурация путей к
openapi.jsonDOCS=/docs REDOC=/redoc - Редактирование тэгов
prodи/илиdevTAG_PROD=production TAG_DEV=developers - Редакирование префикса
/devи/или/prodserver.ru/PREFIX/your_appPREFIX_PROD=/api/logs/prod PREFIX_DEV=/api/logs/devserver.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. Там надо будет реализовать стриминг файла в браузер.