gpt4 book ai didi

java - 将 logback classic 与 gradle 结合使用时无法加载 logback 配置

转载 作者:太空宇宙 更新时间:2023-11-04 12:42:56 24 4
gpt4 key购买 nike

我正在尝试在使用 gradle 作为构建工具的项目中设置 logback。这是构建文件

apply plugin: 'java'
apply plugin: 'idea'
apply plugin: 'groovy'
apply plugin: 'maven'


sourceCompatibility = 1.8

repositories {
mavenCentral()
mavenLocal()
}

dependencies {
compile gradleApi()
compile localGroovy()
compile 'org.liquibase:liquibase-core:3.0.1'
compile 'org.jdbi:jdbi:2.71'
compile 'org.postgresql:postgresql:9.4.1208.jre7'
compile 'ch.qos.logback:logback-classic:1.1.7'
testCompile group: 'junit', name: 'junit', version: '4.11'
testCompile 'org.powermock:powermock-module-junit4:1.6.1'
testCompile 'org.powermock:powermock-api-mockito:1.6.1'
}

这是 logback.groovy 文件,其中包含 logback 的配置

import ch.qos.logback.classic.encoder.PatternLayoutEncoder
import org.apache.log4j.FileAppender

root(DEBUG, ["CONSOLE", "FILE"])

appender("FILE", FileAppender) {
file = "testFile.log"
append = true
encoder(PatternLayoutEncoder) {
pattern = "%level %logger - %msg %n"
}
}

当我尝试记录某些内容时,我收到此 SLF4J 警告

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/local/Cellar/gradle/2.12/libexec/lib/gradle-core-2.12.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/Users/shishir/.gradle/caches/modules-2/files-2.1/ch.qos.logback/logback-classic/1.1.7/9865cf6994f9ff13fce0bf93f2054ef6c65bb462/logback-classic-1.1.7.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.gradle.logging.internal.slf4j.OutputEventListenerBackedLoggerContext]

为了解决这个问题,我遵循了此问题的答案 stack overflow question并将此额外代码添加到我的构建文件中

configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
if (details.requested.name == 'logback-classic') {
details.useTarget 'org.slf4j:slf4j-api:1.7.5'
}
}

虽然这解决了 SLF4J 警告的问题,但日志记录不起作用。我添加的日志语句不会按照 logback.groovy 中指定的模式打印到 STDOUT。日志也没有添加到文件中。有人能指出我正确的方向吗?

最佳答案

Gradle 附带了自己的日志框架,您无法真正替换/添加该框架。最好的选择是在 Gradle 插件中使用 Gradle 记录器。

关于java - 将 logback classic 与 gradle 结合使用时无法加载 logback 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36647163/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com