Logback теряет мои сообщения журнала в файл

Я написал тестовую программу для проверки улучшения производительности logback по сравнению с log4j. Но, к моему удивлению, я столкнулся с этой странной проблемой. Я записываю около 200k сообщений журнала в цикле в файл, используя их асинхронные и файловые приложения. Но каждый раз он регистрирует только около 140 тыс. Сообщений и останавливается после этого. Он просто печатает мой последний оператор журнала, указывающий, что он записал все в буфер и программа завершается. Если я просто запускаю ту же программу с Log4j, я могу видеть все 200k сообщений в файле журнала. Есть ли какие-то принципиальные архитектурные различия, которые делают это возможным? Есть ли способ избежать этого? Мы думаем о переходе с log4j на logback, и теперь это заставляет меня переосмыслить.

Это моя конфигурация входа в систему:



    
        %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
        
    



logback.log

  %date %level [%thread] %logger{10} [%file:%line] %msg%n

 


    



    

 

Это мой код ------------------

      public static void main(String[] args) throws InterruptedException {
        org.slf4j.Logger logbackLogger = LoggerFactory
                .getLogger(LogbackTest.class);

        List runs = Arrays.asList(1000, 5000, 50000, 200000);
        ArrayList logbackRuntimes = new ArrayList(4);

        for (int run = 0; run < runs.size(); run++) {
            logbackLogger.info("------------------------>Starting run: "
                    + (run + 1));
            // logback test
            long stTime = System.nanoTime();
            int i = 0;
            for (i = 1; i 

Ответы на вопрос(1)

Ваш ответ на вопрос