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

时间:2018-08-20 00:10:31

标签: gradle log4j

如何为带有模块的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模块?
  • 例如我可以把它放在通用的include模块中吗?
  • 还是每个复合模块都需要有自己的log4j xml?

1 个答案:

答案 0 :(得分:0)

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

  • 公共模块不包括log4j配置个人库
  • 模块或顶级应用程序均不包含log4j配置
  • 模块确实包含log4j配置,但未将其放在 classpath(我只在src / [configuration] / config目录中放了 为此)
  • 启动应用程序本身(是否来自发行版) 版本或Gradle版本中的JavaExec版本)指定 log4j的配置已加载,因此您不会意外 被类路径上的其他配置毒害
  • 您可以通过在gradle属性文件中提供-D标志来定义xml位置,例如-Dlog4j.configurationFile =
  • 还-Dlog4j.debug可能有助于跟踪问题