2015-04-22 2 views
2

У меня есть проект, где мне нужен механизм каротажа, прежде чем я начну использовать SpringApplication. Как я могу это достичь?Запуск регистрации начальной загрузки весны до запуска весеннего приложения

Я попытался настроить свой собственный механизм ведения журнала (LogManager.getLogManager(). ReadConfiguration()), но он переопределяется при запуске приложения весны.

В основном я хочу использовать один и тот же механизм ведения журнала везде.

ответ

0

мне удалось решить мою проблему путем удаления «весна-загрузка-стартер-протоколирования» зависимости от моего проекта и добавления «орг .slf4j: slf4j-jdk14: 1.7.5 'и' commons-logging: commons-logging: 1.1.1 '.

Я использую Gradle так в моем случае я достигаю что:

compile("org.springframework.boot:spring-boot-starter-web") { 
    exclude module: "spring-boot-starter-logging" 
} 
compile("org.springframework.boot:spring-boot-starter-actuator") { 
    exclude module: "spring-boot-starter-logging" 
} 

compile('org.slf4j:slf4j-jdk14:1.7.5') 
compile('commons-logging:commons-logging:1.1.1') 

Удаление LoggingApplicationListener и logback.xml не работал.

0

Вы можете настроить Log4j слушателя в web.xml вместо пружинного context.xml

<context-param> 
    <param-name>log4jConfigLocation</param-name> 
    <param-value>/WEB-INF/classes/log4j.properties</param-value> 
</context-param> 

<listener> 
    <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> 
</listener> 

Так оно перед начинается весна.

+0

У моего проекта нет файла web.xml, и я бы предпочел не использовать его. У меня также есть зависимый проект, который использует механизм регистрации Java. – telebog

1

Spring Boot использует LoggingApplicationListener для настройки ведения журнала для вашего приложения. Этот слушатель является одним из слушателей по умолчанию SpringApplication. Чтобы использовать собственную систему регистрации уже настроенных, вам необходимо настроить SpringApplication, чтобы у этого не было этого слушателя. Например, чтобы удалить нежелательный слушатель, сохраняя при этом всех остальных слушателях по умолчанию:

@SpringBootApplication 
public class CustomLoggingApplication { 

    public static void main(String[] args) {   
     SpringApplication application = 
       new SpringApplication(CustomLoggingApplication.class); 

     Collection<ApplicationListener<?>> listeners = 
       new ArrayList<ApplicationListener<?>>(); 
     for (ApplicationListener<?> listener: application.getListeners()) { 
      if (!(listener instanceof LoggingApplicationListener)) { 
       listeners.add(listener); 
      } 
     } 
     application.setListeners(listeners); 

     application.run(args); 
    } 

} 
+0

этот код не имел никакого влияния в моем случае – telebog

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