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:
问题可能与此行有关:
此版本的包含文件包含在其他文件中, 其中一个文件具有文件追加器 。 由于您要定义自己的appender(文件和控制台),因此可能不需要包含Spring Boot基本文件。
这有用吗?
C:\path\to\my\file\myLog-${myTimestamp}.log %d{yyyy-MM-dd_HH:mm:ss.SSS} - %msg%n 50MB