gpt4 book ai didi

gradle - 如何为带有模块的 gradle 项目设置 log4j?

转载 作者:行者123 更新时间:2023-12-03 05:42:28 25 4
gpt4 key购买 nike

如何为带有模块的 gradle 项目设置 log4j?

我有一个项目设置如下:

project root
build.gradle
gradle.properties
settings.gradle
// this root project does:
// include CommonModule
// includeBuild <all composite modules within module folder>

---CommonModule
------build.gradle
------gradle.properties
------settings.gradle
------src/main/groovy/...<common-code>
------src/main/resources/log4j2.xml

Modules
---OtherModule-1
// this is a gradle composite module
// it also includes the common module
------build.gradle
------gradle.properties
------settings.gradle
------src/main/groovy/...module1-code
------src/main/resources/log4j2.xml
---OtherModule-2
// this is a gradle composite module
// it also includes the common module
------build.gradle
------gradle.properties
------settings.gradle
------src/main/groovy/...module2-code
------src/main/resources/log4j2.xml

如上图,我们有一个通用的 gradle 模块和一个包含模块相关复合模块的模块文件夹,每个模块都依赖于包含的 CommonModule
(核心通用代码是通用的,复合模块每个都包含扩展通用内容的代码

我的问题希望很简单:
  • 我在哪里配置我的 log4j 模块?
  • 例如我可以把它放在通用的包含模块中吗?
  • 还是每个复合模块都需要有自己的 log4j xml?
  • 最佳答案

    我在 gradle 论坛上问了同样的问题 https://discuss.gradle.org/t/how-do-you-set-up-log4j-for-a-gradle-project-with-modules/28262并得到了答案——

  • 通用模块不包含 log4j 配置单个库
  • 模块也不包含 log4j 配置 顶级应用程序
  • 模块确实包含一个 log4j 配置,但没有把它放在
    类路径(我预留了一个 src/[configuration]/config 目录只是
    为此)
  • 应用程序本身的启动器(无论是从发布
    build 或从 Gradle 构建中的 JavaExec)指定
    log4j 配置是从加载的,这样你就不会意外得到
    被类路径上的其他配置毒化
  • 您可以通过在 gradle 属性文件中提供 -D 标志来定义 xml 位置,例如-Dlog4j.configurationFile=
  • -Dlog4j.debug 也可能有助于追踪问题
  • 关于gradle - 如何为带有模块的 gradle 项目设置 log4j?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51922781/

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