2015-06-20 140 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