我已经下载了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,但结果相同。我到底做错了什么?
1.在依赖关系中添加以下几行。
testRuntimeOnly("org.slf4j:slf4j-log4j12")
2.然后复制 core\src\test\resource\log4j.properties
到 example\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