在Apache Calcite项目中设置log4j

问题描述 投票:1回答:1

我已经下载了Apache Calcite项目,并在IntelliJ IDEA 2019.3.2中打开了它的Gradle项目。我遇到了一个问题,它不能正确加载slf4j类(我得到的是 SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder" error). 最后,我将以下几行加入到 build.gradle.kts:core 模块。

dependencies {
  ...   
  implementation("org.slf4j:slf4j-api:1.7.3")
  implementation("org.slf4j:slf4j-simple:1.7.3")
  ...
}

现在,摆脱了错误; 然而,日志器总是设置为。INFO 不管是哪个级别的日志,都要进行记录。core\src\test\resource\log4j.properties 设置。目前,我的 log4j.properties 看起来是这样的。

# Change rootLogger level to WARN
log4j.rootLogger=ALL, A1

# A1 goes to the console
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p - %m%n

我运行 CsvExample 测试,却没有发生任何日志记录。当我调试时,我看到 RelOptRuleCall.LOGGER 设置为 INFO 记录级别。该 RelOptRuleCall.LOGGER 是一个实例 org.slf4j.impl.SimpleLogger. 我也在关注 https:/calcite.apache.orgdocshowto.html#tracing。 徒劳无功 RelOptRuleCall.LOGGER 设置为 INFO 尽管 log4j.properties 变化)。)

我使用的是IntelliJ IDEA 2019.3.2社区版和Windows 10。我也在尝试使用JDK 1.8而不是默认的JDK 11,但结果相同。我到底做错了什么?

java log4j apache-calcite
1个回答
0
投票
  1. 请修改examplecsvbuild.gradle.kts,

1.在依赖关系中添加以下几行。

   testRuntimeOnly("org.slf4j:slf4j-log4j12")

2.然后复制 core\src\test\resource\log4j.propertiesexample\src\test\resource\log4j.properties

添加下线。


# Increase level to DEBUG for RelOptPlanner
log4j.logger.org.apache.calcite.plan.RelOptPlanner=TRACE
# Increase level to TRACE for HepPlanner
log4j.logger.org.apache.calcite.plan.hep.HepPlanner=TRACE

© www.soinside.com 2019 - 2024. All rights reserved.