Logback-test.xml配置生成两个日志文件而不是一个?

当我停止运行我的spring-boot应用程序时,会生成两个日志文件而不是一个 (一个是预期的)。

我的Logback-test.xml文件中可能导致此错误的是什么?

的logback-的test.xml:

          %d{HH:mm:ss.SSS} - %msg%n    C:\path\to\my\file\myLog-${myTimestamp}.log  %d{yyyy-MM-dd_HH:mm:ss.SSS} - %msg%n   myLog.%i{yyyy-MM-dd_HH:mm:ss.SSS}}.log 1 10   2MB            

正在创建的两个文件是:

 myLog-2016-04-22_15-47-30.126.log and myLog-2016-04-22_15-47-30.922.log 

解析配置时生成时间戳。 由于Spring Boot在启动期间重新初始化一次,因此会生成两个不同的时间戳,因此会生成两个文件。

您可以在配置中使用timeReferene="contextBirth"来获取恒定的时间戳。 由于LoggerContext没有被销毁,只需重置它应该工作:

  

您的logging.config属性如何显示? 您的问题可能是路径 (或属性文件中缺少的属性)。 例如应该看起来像这样:

 logging.config=classpath:logback-test.xml 

application-test.properties

另一种可能是您有两个活动配置文件。 例如您的test配置文件和default配置文件。 在这种情况下,您可以在logback中使用条件配置来解决它。

有关详细信息,请参阅答案 。 另外,请参阅该答案的最新评论。 spring boot 1.3包含一些关于使用logback处理多个配置文件的新function:

http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#boot-features-logback-extensions

问题可能与此行有关:

  

此版本的包含文件包含在其他文件中, 其中一个文件具有文件追加器 。 由于您要定义自己的appender(文件和控制台),因此可能不需要包含Spring Boot基本文件。

这有用吗?

  C:\path\to\my\file\myLog-${myTimestamp}.log  %d{yyyy-MM-dd_HH:mm:ss.SSS} - %msg%n    50MB