java Jenkins和生产服务器的Log4J配置不同

70gysomp  于 2023-01-24  发布在  Java
关注(0)|答案(1)|浏览(91)

我正在Linux服务器上的/logs/MyApp目录下转储日志文件(Log4J),它工作正常。应用程序(EAR)是使用Jenkins构建的,我正在为此编写JUnit测试用例。
问题是Log4J文件附加器的位置不会指向Jenkins服务器文件系统,而是相对于我的Linux服务器。

Log4j.appender.App.File = /logs/MyApp/AppLogs.log

当从Jenkins执行测试用例时,由于Log4J文件位置不存在,这会导致错误。
log4j:错误:setFile(null,true)调用失败。java.io.FileNotFoundException:/logs/MyApp/Applogs.log(没有此类文件或目录)
如何配置Log4J以与Jenkins一起工作,而不更改已为生产环境设置的当前配置?

kpbwa7wx

kpbwa7wx1#

有几种方法可以解决这个问题:
1.在你的Jenkins主/从目录中创建一个目录。如果有一个新的从目录则不可持续。
1.更改log4j配置,使您拥有不同的log4j配置-一个用于您的生产,一个用于本地测试,一个用于Jenkins。(这就是Play框架所做的,对于不同的配置文件,您会得到不同的日志文件)
1.您可以将其作为Jenkins job的参数传递(或在env var中设置)并在Jenkins中使用。
1.如果可能,不要在log4j配置中使用绝对路径。

相关问题