2016-12-02 14 views
1

У меня есть приложение Spring Boot, которое внутренне использует библиотеки с протоколированием log4j.Пауза Spring Boot и log4j появляются в консоли

Я добавил в pom.xml (прикрепить log4j записи в моих журналах Logback):

<dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>log4j-over-slf4j</artifactId> 
    </dependency> 

По http://docs.spring.io/spring-boot/docs/current/reference/html/howto-logging.html#howto-configure-logback-for-logging-fileonly я добавил пользовательские Logback-spring.xml, который должен отключить выход журнала консоли:

<configuration> 
    <include resource="org/springframework/boot/logging/logback/defaults.xml" /> 
    <property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}/}spring.log}"/> 
    <include resource="org/springframework/boot/logging/logback/file-appender.xml" /> 
    <root level="INFO"> 
     <appender-ref ref="FILE" /> 
    </root> 
</configuration> 

проблема заключается после:

java -jar my-app.jar & 

baner.txt и следующие светосигнальные устр ng все еще записываются на консоль:

. ____   _   __ _ _ 
/\\/___'_ __ _ _(_)_ __ __ _ \ \ \ \ 
(()\___ | '_ | '_| | '_ \/ _` | \ \ \ \ 
\\/ ___)| |_)| | | | | || (_| | )))) 
    ' |____| .__|_| |_|_| |_\__, |//// 
=========|_|==============|___/=/_/_/_/ 
:: Spring Boot ::  (v1.4.2.RELEASE) 

log4j:WARN No appenders could be found for logger (package.hidden). 
log4j:WARN Please initialize the log4j system properly. 

Q1: Как полностью отключить журналы консоли? Q2: Как подключить log4j-журнал к выходному файлу журнала?

+0

Ok, я исключил log4j из моей библиотеки, и предупреждение не отображается. Но банер все еще виден. –

ответ

1

Согласно замечанию, только один вопрос остался. Если вам нужно отключить баннер, существует несколько способов. Вы можете сделать это через application.properties файл как:

spring.main.banner-mode=off 

Или через application.yml как:

spring: 
    main: 
     banner-mode: "off" 

или даже в источниках:

public static void main(String... args) { 
    SpringApplication application = new SpringApplication(SomeSpringConfiguration.class); 
    application.setBannerMode(Banner.Mode.OFF); 
    application.run(args); 
} 
0

Решение log4j WARN должно было исключать транзитивные зависимости из моих внутренних библиотек.

Banner записываются в консоль по умолчанию, поэтому мы должны установить:

spring.main.banner-mode=log 

https://github.com/spring-projects/spring-boot/issues/4001