2016-04-27 114 views
3

我tryng配置我springboot應用程序登錄一個文件的日子,所以我配置我logback.xml就像這樣:Springboot的logback配置

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

    <appender name="ROLLIN" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
     <file>${LOG_FILE}</file> 
     <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 

      <!-- daily rollover --> 
      <fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.log</fileNamePattern> 

     </rollingPolicy> 
    </appender> 

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

    <logger name="org.springframework.web" level="INFO"/> 
</configuration> 

所以,當我嘗試運行我的應用程序我得到這個錯誤:

Exception in thread "main" java.lang.IllegalStateException: Logback configuration error detected: 
ERROR in ch.qos.logback.core.rolling.RollingFileAppender[ROLLIN] - No encoder set for the appender named "ROLLIN". 
    at org.springframework.boot.logging.logback.LogbackLoggingSystem.loadConfiguration(LogbackLoggingSystem.java:151) 
    at org.springframework.boot.logging.AbstractLoggingSystem.initializeWithConventions(AbstractLoggingSystem.java:71) 
    at org.springframework.boot.logging.AbstractLoggingSystem.initialize(AbstractLoggingSystem.java:49) 
    at org.springframework.boot.logging.logback.LogbackLoggingSystem.initialize(LogbackLoggingSystem.java:106) 
    at org.springframework.boot.logging.LoggingApplicationListener.initializeSystem(LoggingApplicationListener.java:301) 
    at org.springframework.boot.logging.LoggingApplicationListener.initialize(LoggingApplicationListener.java:253) 
    at org.springframework.boot.logging.LoggingApplicationListener.onApplicationEnvironmentPreparedEvent(LoggingApplicationListener.java:225) 
    at org.springframework.boot.logging.LoggingApplicationListener.onApplicationEvent(LoggingApplicationListener.java:201) 
    at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:163) 
    at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:136) 
    at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:119) 
    at org.springframework.boot.context.event.EventPublishingRunListener.publishEvent(EventPublishingRunListener.java:111) 
    at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:65) 
    at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:54) 
    at org.springframework.boot.SpringApplication.createAndRefreshContext(SpringApplication.java:330) 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1191) 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1180) 
    at br.com.lumera.Application.main(Application.java:29) 
:bootRun FAILED 

回答

2

如例外情況所述,沒有定義編碼器。嘗試類似

<appender name="ROLLIN" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
    <file>logFile.log</file> 
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
     <!-- daily rollover --> 
     <fileNamePattern>logFile.%d{yyyy-MM-dd}.log</fileNamePattern> 

     <!-- keep 30 days' worth of history capped at 3GB total size --> 
     <maxHistory>30</maxHistory> 
     <totalSizeCap>3GB</totalSizeCap> 

    </rollingPolicy> 

    <encoder> 
     <pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern> 
    </encoder> 
    </appender> 

欲瞭解更多詳情,請參見官方documentation