jenkins和生产服务器的不同log4j配置

时间:2015-06-08 07:42:23

标签: java jenkins log4j

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

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

当jenkins执行测试用例时,由于log4j文件位置不存在而导致错误。

  

log4j:ERROR setFile(null,true)调用失败。   java.io.FileNotFoundException:/logs/MyApp/Applogs.log(没有这样的文件   或目录)

如何配置log4j以使用jenkins而不更改已为我的生产环境设置的当前配置。

1 个答案:

答案 0 :(得分:2)

有几种方法可以解决这个问题:

  1. 在Jenkins主站/从站中创建目录。如果有新奴隶,则不可持续。
  2. 更改log4j配置,以便您拥有不同的log4j配置 - 一个用于您的生产,一个用于本地测试,一个用于Jenkins。 (这是Play框架的功能,对于不同的配置文件,您获得了不同的日志文件)
  3. 您可以将此作为Jenkins作业的参数传递(或在env var中设置)并在Jenkins中使用它。
  4. 如果可能,请不要在log4j配置中使用绝对路径。