2016-08-10 3 views
0

Я новичок в SpringBoot проект, я пытаюсь настроить logback-spring.xmlвесна проблема загрузки каротажа

Logging зависимостей в моем проекте pom.xml файла:

<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> 

Logging Конфигурация в application.proerties:

logging.config=classpath:logback-spring.xml 
logging.level.org.springframework.web=DEBUG 
logging.level.org.hibernate=ERROR 

Когда я запускаю исполняемую войну, он выбирает следующие исключения:

SLF4J: Class path contains multiple SLF4J bindings. 
    SLF4J: Found binding in [jar:file:/target/rentacoder.war!/WEB-INF/lib/slf4j-log4j12-1.7.16.jar!/org/slf4j/impl/StaticLoggerBinder.class] 
    SLF4J: Found binding in [jar:file:/target/rentacoder.war!/WEB-INF/lib/slf4j-simple-1.7.16.jar!/org/slf4j/impl/StaticLoggerBinder.class] 
    SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. 
    SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory] 
    log4j:WARN Continuable parsing error 2 and column 16 
    log4j:WARN Document root element "configuration", must match DOCTYPE root "null". 
    log4j:WARN Continuable parsing error 2 and column 16 
    log4j:WARN Document is invalid: no grammar found. 
    log4j:WARN The <configuration> element has been deprecated. 
    log4j:WARN Use the <log4j:configuration> element instead. 
    log4j:WARN Unrecognized element include 
    log4j:ERROR Could not create an Appender. Reported error follows. 
    java.lang.ClassNotFoundException: ch.qos.logback.core.FileAppender 
     at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
     at org.springframework.boot.loader.LaunchedURLClassLoader.doLoadClass(LaunchedURLClassLoader.java:178) 
     at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:142) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
     at java.lang.Class.forName0(Native Method) 

Мой logback-spring.xml выглядит следующим образом:

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <include resource="org/springframework/boot/logging/logback/base.xml"/> 
    <logger name="org.springframework.web" level="DEBUG"/> 

    <appender name="FILE" class="ch.qos.logback.core.FileAppender"> 
     <file>myApp.log</file> 
     <encoder> 
      <pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n</pattern> 
     </encoder> 
    </appender> 

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> 
     <encoder> 
      <pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n</pattern> 
     </encoder> 
    </appender> 

    <logger name="org.apache.velocity" level="OFF" /> 

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

Может кто-то пролить свет на это? Как я могу это исправить?

ответ

1

Есть пара проблем.

Во-первых, использовать logback-spring.xml для настройки протоколирования, вам нужно использовать Logback пока вы исключили spring-boot-starter-logging, который использует Logback в пользу spring-boot-starter-log4j, который использует Log4j. Если вы хотите использовать logback-spring.xml, вы должны удалить исключение из своего пом.

Во-вторых, SLF4J: Found binding in [jar:file:/target/rentacoder.war!/WEB-INF/lib/slf4j-simple-1.7.16.jar!/org/slf4j/impl/StaticLoggerBinder.class] означает, что у вас также есть slf4j-simple на пути к классу. Я не могу сказать, откуда это взялось, учитывая предоставленную вами информацию, но вам нужно удалить ее из ваших зависимостей. Вы можете использовать mvn dependency:tree, чтобы помочь вам определить, откуда он взялся, и удалить/исключить его по мере необходимости.

+0

Я использую 'mvn dependency: tree' и обнаруживаю, что' slf4j-simple' является из-за зависимости postgresql – haifzhan

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