2015-03-11 1 views
2

Я хотел бы иметь все внутренние сообщения журнала Springboot, направленные в log4j, чтобы сообщения соответствовали моим свойствам log4j (т.е. они отправляются на консоль и мой файл log4j, используя мой макет).Как напрямую все внутренние записи Springboot в log4j?

Я попытался настроить Springboot использовать только протоколирования log4j в данном руководстве: http://spring.io/blog/2009/12/04/logging-dependencies-in-spring/

Я успешно настроить log4j для входа в консоль и в файл при использовании объекта log4j регистратора.

Однако, похоже, что Springboot все еще использует slf4j, когда он регистрируется внутри. Я попытался удалить зависимости slf4j, но Springboot не запускается с отсутствием исключения класса.

Как я могу направить все внутренние записи Springboot на log4j?

ответ

2

Вы пробовали это из официальных документов?

http://docs.spring.io/spring-boot/docs/1.2.2.RELEASE/reference/htmlsingle/#howto-configure-log4j-for-logging

В основном вы должны исключить Logback материал, который поставляется по умолчанию с стартерных POMS.

Цитируется здесь для справки:

<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-web</artifactId> 
</dependency> 
<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter</artifactId> 
    <exclusions> 
     <exclusion> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-logging</artifactId> 
     </exclusion> 
    </exclusions> 
</dependency> 
<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-log4j</artifactId> 
</dependency> 
+0

Это было его. Спасибо. –

0

Если вы используете пружинные загрузки, я рекомендую после spring documentation, который я нашел проще, чем справки.

У меня log4j работает, и печатает сообщения, как:

[2015-03-06 15:34:54 INFO ] [main] [tomcat.TomcatEmbeddedServletContainer] Tomcat initialized with port(s): 8080 (http)

Не уверен, что это то, что вы имеете в виду внутренних сообщений.

+0

Спасибо. ci_ указал мне на тот же документ. –

-1
<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot</artifactId> 
    <version>1.1.4.RELEASE</version> 
    <exclusions> 
    <exclusion> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-logging</artifactId> 
    </exclusion> 
    </exclusions> 
</dependency> 

<!-- add slf4j interfaces to classpath this is for log4j --> 
<dependency> 
    <groupId>org.slf4j</groupId> 
    <artifactId>slf4j-api</artifactId> 
    <version>1.6.4</version> 
    <scope>compile</scope> 
</dependency> 

<dependency> 
    <groupId>org.slf4j</groupId> 
    <artifactId>slf4j-log4j12</artifactId> 
    <version>1.6.4</version> 
    <scope>runtime</scope> 
</dependency> 

<!-- add log4j to classpath --> 
<!-- does the logging --> 
<dependency> 
    <groupId>log4j</groupId> 
    <artifactId>log4j</artifactId> 
    <version>1.2.16</version> 
</dependency> 

Добавить log4j.properties под ресурсы

log4j.rootLogger=INFO, Console, File 

# Direct log messages to stdout 
log4j.appender.Console=org.apache.log4j.ConsoleAppender 
log4j.appender.Console.Target=System.out 
log4j.appender.Console.layout=org.apache.log4j.PatternLayout 
log4j.appender.Console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p %c{1}:%L - %m%n 


log4j.appender.File=org.apache.log4j.RollingFileAppender 
log4j.appender.File.append=true 
log4j.appender.File.file=/tmp/projectdir/logfile-ws.log 
log4j.appender.File.threshold=INFO 
log4j.appender.File.layout=org.apache.log4j.PatternLayout 
log4j.appender.File.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p %c{1}:%L - %m%n 
log4j.appender.File.MaxFileSize=100MB 
log4j.appender.File.MaxBackupIndex=1 
Смежные вопросы