Установление порядка LoggerContextListener больше не учитывается после обновления до SLF4J v2/LogbackJAVA

Программисты JAVA общаются здесь
Anonymous
Установление порядка LoggerContextListener больше не учитывается после обновления до SLF4J v2/Logback

Сообщение Anonymous »

Я постараюсь объяснить это, но это довольно сложно. Я работаю над проектом, который хочет, чтобы люди могли переопределять настройки logback.xml с помощью профиля и свойств Java.
Например, если у меня есть следующее в logback.xml И затем создайте файл свойств, например

Код: Выделить всё

logger.unit.test.l1.l2.l3=DEBUG
Это отлично работало в SLF4J v1 с использованием кода Logback LoggerContextListener и расширением класса ContextAwareBase, но в конце концов мне пришлось перейти на версию 2, и когда я провожу тесты не скажите, что это ошибка. По сути, это похоже на то, что некоторые изменения в функции кода LoggerFactory.bind() изменили способ создания контекста. Теперь кажется, что код функции возврата ContextSelectorStaticBinder.getSingleton() раньше в версии 1.x, кажется, вызывал ее здесь, поэтому я могу очистить ее, увидеть, как она вызывается, но теперь она использует инициализацию.
Кто-нибудь знает, как изменилась эта закономерность? Может ли кто-нибудь указать мне на соответствующую документацию по выпуску или PR/примеры? Я предполагаю, что мне не хватает некоторой конфигурации Logback в SLF4J или, возможно, нужно добавить еще один класс.
Обновить
Если посмотреть глубже, это может быть изменение в Сторона журнала, где выглядит так, будто целый раздел кода был удален без замены (а оставлять код с комментариями без TODO или инструкций кажется плохим)...

Код: Выделить всё

// private final ContextSelectorStaticBinder contextSelectorBinder =
// ContextSelectorStaticBinder.getSingleton();
//    private static Object KEY = new Object();
//    private volatile boolean initialized = false;
...
//        if (!initialized) {
//            return defaultLoggerContext;
//
//
//        if (contextSelectorBinder.getContextSelector() == null) {
//            throw new IllegalStateException("contextSelector cannot be null. See also " + NULL_CS_URL);
//        }
//        return contextSelectorBinder.getContextSelector().getLoggerContext();
Почему это закомментировано и есть ли еще какие-либо документы по этому поводу?

Подробнее здесь: https://stackoverflow.com/questions/784 ... ading-to-s

Вернуться в «JAVA»