我正在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一起工作,而不更改已为生产环境设置的当前配置?
1条答案
按热度按时间kpbwa7wx1#
有几种方法可以解决这个问题:
1.在你的Jenkins主/从目录中创建一个目录。如果有一个新的从目录则不可持续。
1.更改log4j配置,使您拥有不同的log4j配置-一个用于您的生产,一个用于本地测试,一个用于Jenkins。(这就是Play框架所做的,对于不同的配置文件,您会得到不同的日志文件)
1.您可以将其作为Jenkins job的参数传递(或在env var中设置)并在Jenkins中使用。
1.如果可能,不要在log4j配置中使用绝对路径。