【问题标题】:different log4j configuration for jenkins and production serverjenkins 和生产服务器的不同 log4j 配置
【发布时间】:2015-06-08 07:42:23
【问题描述】:

我在我的 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。

【问题讨论】:

    标签: java jenkins log4j


    【解决方案1】:

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

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

    【讨论】:

    • (1) 我无法更改 jenkins 服务器上的目录结构 (2) 我认为您正在谈论为 Jenkins 和 prod env 创建单独的 maven 配置文件。我会尝试配置不同的配置文件,看看会发生什么谢谢
    猜你喜欢
    • 2015-10-06
    • 2014-12-29
    • 2017-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-25
    • 2013-11-19
    相关资源
    最近更新 更多