Java Apache方解石项目中的log4j设置
我已经下载了Apache方解石项目,并在IntelliJ IDEA 2019.3.2中打开了它的Gradle项目。我遇到了一个问题,它无法正确加载slf4j类(我得到了Java Apache方解石项目中的log4j设置,java,log4j,apache-calcite,Java,Log4j,Apache Calcite,我已经下载了Apache方解石项目,并在IntelliJ IDEA 2019.3.2中打开了它的Gradle项目。我遇到了一个问题,它无法正确加载slf4j类(我得到了slf4j:未能加载类“org.slf4j.impl.StaticLoggerBinder”错误)。最后,我通过在:core模块的build.gradle.kts中添加以下行解决了问题: dependencies { ... implementation("org.slf4j:slf4j-api:1.7.3")
slf4j:未能加载类“org.slf4j.impl.StaticLoggerBinder”错误
)。最后,我通过在:core
模块的build.gradle.kts
中添加以下行解决了问题:
dependencies {
...
implementation("org.slf4j:slf4j-api:1.7.3")
implementation("org.slf4j:slf4j-simple:1.7.3")
...
}
现在,消除错误;但是,无论core\src\test\resource\log4j.properties设置如何,记录器始终设置为INFO
日志记录级别。当前,我的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
的一个实例。我也遵循了说明,但运气不佳(尽管有任何log4j.properties
更改,RelOptRuleCall.LOGGER
设置为INFO
)
我正在使用IntelliJ IDEA 2019.3.2社区版和Windows 10。我还尝试了JDK1.8而不是默认的JDK11,但结果相同。我做错了什么
请修改示例/csv/build.gradle.kts
将以下行添加到依赖项:
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
请修改示例/csv/build.gradle.kts
将以下行添加到依赖项:
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