Logging Spring Boot-如何在每个配置文件中有不同的日志配置?
我试图在Spring Boot中根据不同的配置文件配置日志记录支持。这是application.yml文件的相关部分:Logging Spring Boot-如何在每个配置文件中有不同的日志配置?,logging,configuration,spring-boot,logback,Logging,Configuration,Spring Boot,Logback,我试图在Spring Boot中根据不同的配置文件配置日志记录支持。这是application.yml文件的相关部分: spring: profiles.active: development --- spring: profiles: development logging.config: logback-development.xml --- spring: profiles: test logging.config: logback-test.xml 正如您所看到
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引导配置,但是这个配置不应该允许我在每个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>
<?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>
utf-8
[%p]%c-%m%n
真的
logback-test.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>
<?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>
日志/假日需求。%d{yyyy-MM-dd}.log
90
utf-8
%d%-5级[%thread]%记录器{0}:%msg%n
512
真的
更改logging.config,使其在类路径中的外观如下所示
logging:
config: classpath:logback-development.xml
在配置文件的相关*.properties文件中设置它,而不是*.yml,例如: 成套: logging.config=classpath:logback-prod.xml
对不起,那没用。它似乎在默认情况下查看类路径,因此不需要“classpath:”前缀。无论如何,谢谢你。你的配置肯定有其他问题。在我的建议之前和之后,我测试了上面的精确配置,它解决了这个问题。我总是在我的项目中成功地使用classpath:*。也许可以发布更多信息。您是使用嵌入式服务器还是部署war?或者在使用嵌入式Tomcat的xmlI中发布日志。您确定没有在运行时覆盖某个配置文件吗?您能在日志输出“激活的配置文件开发”中找到这一行吗?这是我在创建的日志文件中找到的:2015-06-21 02:39:59394调试[main]配置文件应用程序Listener:激活的配置文件开发