Я мог бы спросить что-то тривиальное, но то, что я пробовал, похоже, не работает. С моим приложением MAIN я хочу регистрировать всю информацию везде, кроме стороннего пакета (назовем его boring
), который выдает их слишком много (поэтому я смотрю только на предупреждения). Кроме того, я хочу регистрировать отладки в своем пакете interesting
. Это отлично работает со следующими logback.groovy
:
root(INFO, ["MAIN"])
logger("interesting", DEBUG, ["MAIN"])
logger("boring", WARN, ["MAIN"])
Теперь я хочу настроить другое приложение для ведения журнала на один уровень больше, чем
root(DEBUG, ["DETAIL"])
logger("interesting", TRACE, ["DETAIL"])
logger("boring", INFO, ["DETAIL"])
Это тоже работает, но когда я соединяю оба, это не так. Я могу представить, что это вызвано тем фактом, что каждый Logger
либо включен, либо выключен для данного уровня. Я знаю, что для того поведения, которое я хочу, регистраторы в скучном пакете должны быть на уровне INFO (из-за приложения DETAIL
) и что сообщения для приложения MAIN
должны быть отфильтрованы, но я не вижу, как чтобы настроить это.
ОБНОВИТЬ
Я вижу, что почти все делал неправильно. Линия
logger("interesting", DEBUG, ["MAIN"])
ничего не говорит, например, установить уровень DEBUG для приложения MAIN и пакета interesting
и ниже), вместо этого он делает две независимые вещи:
- установите уровень DEBUG для пакета
interesting
и ниже - добавить ГЛАВНЫЙ аппендикс к интересному
Logger