gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:19:22 25 4
gpt4 key购买 nike

我正在将日志文件 (Log4J) 转储到我的 Linux 服务器上的 /logs/MyApp 目录下,它工作正常。应用程序 (EAR) 是使用 Jenkins 构建的,我正在为此编写 JUnit 测试用例。

问题是 Log4J 文件附加程序的位置不会指向 Jenkins 服务器文件系统,而是相对于我的 Linux 服务器。

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

当从 Jenkins 执行测试用例时,由于 Log4J 文件位置不存在,这会导致错误。

log4j:ERROR setFile(null,true) call failed.java.io.FileNotFoundException: /logs/MyApp/Applogs.log (No such fileor directory)

如何在不更改已为我的生产环境设置的当前配置的情况下配置 Log4J 以与 Jenkins 一起工作?

最佳答案

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

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

关于java - Jenkins 和生产服务器的不同 Log4J 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30703619/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com