2015-06-20 183 views
2

我試圖在Spring Boot中爲每個不同配置文件配置日誌記錄支持。這是application.yml文件的相關部分:Spring Boot - 如何爲每個配置文件配置不同的日誌配置?

spring: 
    profiles.active: development 
--- 
spring: 
    profiles: development 
logging.config: logback-development.xml 
--- 
spring: 
    profiles: test 
logging.config: logback-test.xml 

正如你可以看到我有兩個配置文件(發展是默認的),我使用的logback爲日誌框架。兩個Logback配置xml文件之間的區別在於,測試人員將兩個記錄到控制檯和文件。

我遇到的問題是,即使使用開發配置文件,也會使用logback-test.xml配置。也許我錯過了Spring Boot配置,但是不應該讓這個配置允許我爲每個Spring配置文件使用不同的日誌配置?

的logback-development.xml內容:

<?xml version="1.0" encoding="UTF-8"?> 

<configuration scan="true"> 
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> 
     <encoder> 
      <charset>utf-8</charset> 
      <Pattern>[%p] %c - %m%n</Pattern> 
     </encoder> 
    </appender> 

    <logger name="rs.rmilovic.bookmarksmanager" level="DEBUG" /> 

    <contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator"> 
     <resetJUL>true</resetJUL> 
    </contextListener> 

    <root level="${logback.loglevel}"> 
     <appender-ref ref="CONSOLE" /> 
    </root> 
</configuration> 

的logback-的test.xml內容:

<?xml version="1.0" encoding="UTF-8"?> 

<configuration scan="true"> 
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
     <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
      <fileNamePattern>logs/holiday_requets.%d{yyyy-MM-dd}.log</fileNamePattern> 
      <maxHistory>90</maxHistory> 
     </rollingPolicy> 
     <encoder> 
      <charset>utf-8</charset> 
      <Pattern>%d %-5level [%thread] %logger{0}: %msg%n</Pattern> 
     </encoder> 
    </appender> 

    <appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender"> 
     <queueSize>512</queueSize> 
     <appender-ref ref="FILE" /> 
    </appender> 

    <logger name="rs.rmilovic.bookmarksmanager" level="INFO" /> 

    <contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator"> 
     <resetJUL>true</resetJUL> 
    </contextListener> 

    <root level="${logback.loglevel}"> 
     <appender-ref ref="ASYNC" /> 
    </root> 
</configuration> 

回答

1

更改logging.config看在classpath這樣

logging: 
    config: classpath:logback-development.xml 
+0

對不起,但沒有幫助。它似乎默認查看類路徑,因此「classpath:」前綴不是必需的。不管怎麼說,還是要謝謝你。 –

+0

必須是關於您的配置的其他內容。在我的建議之前和之後,我測試了您的確切配置並解決了它。我總是在成功的項目中使用classpath:*。也許發佈一些更多的信息。您是使用嵌入式服務器還是部署戰爭?或者發佈日誌返回xml – jst

+0

我正在使用嵌入式Tomcat。 –

0

替代* .yml,請將其設置在相關的* .properties文件中以獲取配置文件,例如: in

application-prod.properties
設置:

 

    logging.config=classpath:logback-prod.xml