Комментарии 4

Не нашел в документации (мб. плохо искал):
Есть ли возможность указать, откуда следует читать конфиг-файл (мы конфиги держим отдельно от веб-приложений, так удобнее ими управлять)?
Есть ли возможность перезагрузки конфигов при необходимости?
Есть ли интерфейс конфигурирования кодом?


(Мысли вслух) Смена формата конфигов вместо расширения поддерживаемых форматов (пусть и с неполной функциональностью) может играть против распространения библиотеки для тех, у кого производительность не упёрлась в логгер (у нас в одном из приложений такое было с log4j, пока не воткнули asyncappender). У меня yml не зашёл, хотя и напоминает своей идеологией питон, всё-таки значащие пробелы в конфигурации (с которой работают не только разработчики) нельзя назвать однозначно хорошим решением. Для себя нашел идеальный вариант формата конфига — hocon, потихоньку перехожу на него с других форматах в своих проектах.

привет! Спасибо за комментарий.
По Вашему указанию, в 3.1.0 добавим возможность указывать путь к конфигу Бобины. Это не сложно и может быть полезно.

Runtime изменение настроек Бобины не поддерживается, требуется перезапуск. Причина — простота и предсказуемость как кода так и эксплуатации. Это сознательное решение.

Интерфейс программной настройки — вот это интереснейший момент! Мы считаем что код логирования НЕ нужно писать вообще! И задачу эту успешно решили: код логирования генерируется и добавляется автоматически на этапе компиляции с помощью аннотации BlackBox (https://github.com/INFINITE-TECHNOLOGY/BLACKBOX). Всё что требуется — задавать что именно логировать с помощью аргумента аннотации (применимой и ко всему классу) — только ошибки методов, вызовы методов (с результатами), каждый statement, каждый expression. Эта аннотация поддерживается только в Groovy компиляторе пока — но раскроем секретные планы — идёт работа над реализацией этого функционала с помощью cglib на Java.

В общем целом — это наш основной постулат — минимизация (в идеале полная автоматизация) инфраструктурного кода. И логирование (как например и авторизация) — это именно такой инфраструктурный код. Если используете Groovy — попробуйте BlackBox. Мы полностью доверили ему весь код логирования. Работает отлично в паре с Бобиной :) (но может и с любыми SLF4J логгерами). Скоро будет отдельный пост по BlackBox.

Обновление настроек может быть лень полезно для критичных сервисов, которые нельзя останавливать ради временного изменения уровня логгирования (скажем, в целом система работает хорошо, но какая-то из функций отрабатывает странно, иногда может быть полезно в одним из классов включить trace. Некоторые библиотеки позволяют изменять свои параметры даже через mbean-ы, что оказывается иногда полезно (и не требует доступа к конфиг-файлам).

Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.