如何使用 Gradle 在 IntelliJ 中设置 SLF4J

新手上路,请多包涵

我很难在 IntelliJ 中使用 Gradle 配置 SLF4J。无论我做什么,我都会收到此消息:

SLF4J:无法加载类“org.slf4j.impl.StaticLoggerBinder”。 SLF4J:默认为无操作 (NOP) 记录器实现 SLF4J:有关详细信息,请参阅 http://www.slf4j.org/codes.html#StaticLoggerBinder

我正在尝试登录控制台并在测试特定文件夹中的文件后。任何帮助都会很棒。

build.gradle 文件:

 plugins {
    id 'java'
    id 'org.openjfx.javafxplugin' version '0.0.8'
    id 'application'
}

version '1.0-SNAPSHOT'

sourceCompatibility = 1.8

repositories {
    mavenCentral()
    jcenter()
    google()
}

dependencies {
    compile group: 'com.googlecode.json-simple', name: 'json-simple', version: '1.+'
    testCompile group: 'junit', name: 'junit', version: '4.12'
    compile group: 'org.apache.poi', name: 'poi', version: '4.+'
    compile group: 'org.apache.poi', name: 'poi-ooxml', version: '4.+'
    compile group: 'org.slf4j', name: 'slf4j-api', version: '1.7.+'
    // compile group: 'ch.qos.logback', name: 'logback-classic', version: '1.+'
    implementation 'com.google.firebase:firebase-admin:6.11.0'
}
javafx {
    version = '12'
    modules = ['javafx.controls', 'javafx.fxml']
}

mainClassName = 'ui.Main'
apply plugin: 'org.openjfx.javafxplugin'

apply plugin: 'idea'

jar {
    manifest {
        attributes 'Main-Class': mainClassName
    }
    from {
        configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
    }
}

log4j.properties 文件(在 src/main/resources/ 中):

 # Define the root logger with appender file
log4j.rootLogger = DEBUG, FILE

# Define the file appender
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=${log}/log.out

# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n

原文由 xblaz3kx 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.5k
2 个回答

您的类路径上需要一个日志记录框架。 SLF4J 是一个支持多种实现(logback、log4j 等)的日志外观。但是,如果您不包含特定的后端,SLF4J 默认为 NOP 实现,它会忽略所有内容。 :)

如果你想使用 log4j ,你需要像这样包含一个绑定:

 compile group: 'org.slf4j', name: 'slf4j-log4j12', version: '1.7.29'

有关详细信息,请参阅 http://www.slf4j.org/manual.html#swapping

原文由 Michael 发布,翻译遵循 CC BY-SA 4.0 许可协议

由于您将 log4j.properties 文件与 SLf4J 一起使用,因此您必须使用 log4j 绑定实现。将以下代码与 Slf4j 一起使用。

 compile group: 'org.slf4j', name: 'slf4j-log4j12', version: '1.7.29'

或者您可以使用 implementation 而不是编译组,如果您使用的是更高版本的 gradle。

 implementation 'org.slf4j:slf4j-log4j1:1.7.29'

原文由 PythonLearner 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题