2016-06-22 3 views
5

В очень простом Java-приложении с использованием logback с использованием значений по умолчанию (нет logback.xml в src/main/resources) приложение запускается примерно за 400 мс. Как только мы добавим базовый logback.xml в путь к классам (src/main/resources), время запуска увеличивается примерно до 5500 мс. Мы видели это в нескольких проектах. Конфигурация выглядит следующим образом:Медленный старт регистрации времени

<configuration> 

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> 
     <encoder> 
      <pattern>%date{HH:mm:ss.SSS} %-7level - %-50logger{36} - %message%n</pattern> 
     </encoder> 
    </appender> 

    <logger name="com.zaxxer.hikari" level="ERROR"> 
     <appender-ref ref="STDOUT"/> 
    </logger> 

    <logger name="org.sql2o" level="ERROR"> 
     <appender-ref ref="STDOUT"/> 
    </logger> 

    <root level="INFO"> 
     <appender-ref ref="STDOUT"/> 
    </root> 

</configuration> 
+0

Что является наиболее подробной частью вашего кода в соответствии с вашей консолью? –

+0

@NicolasFilotto - во время запуска есть буквально всего 6 распечаток INFO. Это стандартное приложение Spark Java, Hello World. –

+0

Невозможно воспроизвести с использованием logback 1.1.7/slf4j 1.7.21 на jdk 1.8.0_91. Без 'logback.xml' я получаю время запуска 75ms, а с' logback.xml' я получаю время работы 160 мс при регистрации 10 информационных сообщений. Тестовый код: 'Logger logger = LoggerFactory.getLogger (Test.class); for (int i = 0; i <10; i ++) logger.info («Hello world» + i); BTW: Это то, что называется [MCVE] (http://stackoverflow.com/help/mcve) , – Andreas

ответ

10

5 секунд выглядит как тайм-аут запроса DNS. Это было для меня. Просто убедитесь, что имя хоста вашего компьютера разрешено ip. Вы можете проверить, что делает пинг:

ping `hostname` 

Если оно разрешает имя и начинает пингование, ваша проблема - это что-то еще. Но если вы видите сообщение «плохой адрес», это может объяснить вашу проблему.

Чтобы исправить это просто, вы можете просто добавить свое имя хоста в файл /etc/hosts. Просто добавьте имя хоста в конце строки, начиная с 127.0.0.1. Изменения должны применяться немедленно. Возможно, это не самый чистый способ исправить это, особенно на современном Linux с dhcp и так далее. Но если это сработает, у вас будет хороший указатель на то, как решить проблему с разрешением имен навсегда.

+0

Вышеупомянутое не сработало для меня, хотя после добавления 127.0.0.1 команда ping выше работала, где она была выполнена перед изменением на/etc/hosts. Я провел некоторое время с отладчиком и в Sierra (OS X 10.12), длительный тайм-аут - в разрешении localhost через ipv6. Я не могу отключить ipv6, поэтому я не могу подтвердить, что это решит проблему. Но может быть сухарем для кого-то, кто последует за ним. –

6

Для меня вопрос был разрешением ipv6. Ответ Damien выше был на месте, нужно было только добавить запись ipv6 в etc/hosts. Нечто вроде:

::1  ${your.host.name} 
+0

Подтвердите: только применение как принятого решения, так и решение проблемы. Я нахожусь на macOS Sierra, если это имеет значение. – Uniqus

Смежные вопросы