我想使用外部log4j2配置构建spring-boot应用程序。我创建了一个项目,其中log4j config与spring-boot应用程序jar文件捆绑在一起,但它存储在jar文件外部。应用程序加载在application.properties中定义的配置文件,例如。 logging.config = file:config / log4j2.xml。应用程序结构如下:
app.jar
config:
->application.properties
->log4j2.xml
应用程序正确启动,并且可以看到两个配置文件。但是测试无法找到application.properties中定义的log4j2.xml。
我已经创建了test.properties文件,如下所示:
logging.level.com.mypackage=TRACE
# This sets the global logging level and specifies the appenders
log4j.rootLogger=TRACE, theConsoleAppender
# settings for the console appender
log4j.appender.theConsoleAppender=org.apache.log4j.ConsoleAppender
log4j.appender.theConsoleAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.theConsoleAppender.layout.ConversionPattern=%d %p %c{10} [%t] %m%n
并用以下注释为我的测试课:
@TestPropertySource(locations="classpath:test.properties")
但是测试运行程序仍在寻找logging.config中定义的文件。
我应该在application.properties文件中覆盖哪些属性,以便在单元测试期间不需要log4j2.xml?
感谢您的帮助。
答案 0 :(得分:0)
我想出的最好的想法是,重写属性logging.config指向类路径中包含的log4j配置,并添加log4j配置作为测试资源。
在我的test.properties中
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/echarts/4.1.0/echarts-en.min.js"></script>
<div id="mychart"></div>