Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gradle 使用logback-test.xml而不是logback.xml进行spring引导_Gradle_Spring Boot_Slf4j_Logback_Build.gradle - Fatal编程技术网

Gradle 使用logback-test.xml而不是logback.xml进行spring引导

Gradle 使用logback-test.xml而不是logback.xml进行spring引导,gradle,spring-boot,slf4j,logback,build.gradle,Gradle,Spring Boot,Slf4j,Logback,Build.gradle,我有一个gradle项目,结构如下 > > main (one project) > shared (another project) > api >> shared2 (another project) 主项目依赖于共享和共享项目2。共享和shared2项目在其src/test/resources文件夹中都有一个logback-test.xml,主项目在其src/main/resources文件夹中都有一个logback.xml 当我在eclipse中使

我有一个gradle项目,结构如下

>
> main (one project)
> shared (another project)
> api 
>> shared2 (another project)
主项目依赖于共享和共享项目2。共享和shared2项目在其src/
test
/resources文件夹中都有一个logback-test.xml,主项目在其src/
main
/resources文件夹中都有一个logback.xml

当我在eclipse中使用其主应用程序类运行主项目时,我希望在类路径中只加载logback.xml。相反,我看到了发现多个slf4j绑定的警告,更重要的是,日志设置是从logback-test.xml而不是logback.xml应用的。下面是文件夹结构,以作进一步说明

>
> main
> > src/main/resources
> > > logback.xml
> shared
> > src/test/resources
> > > logback-test.xml
> api/shared2
> > src/test/resources
> > > logback-test.xml
在logback-test.xml文件中,我在调试级别启用了org.springframework调试,在logback.xml文件中,我在信息级别启用了它的set。启动应用程序时,我会看到spring调试日志

下面是github项目的示例
以下是logback库查找配置xml文件的顺序:(来自文档)

  • Logback尝试在类路径中查找名为Logback.groovy的文件

  • 如果没有找到这样的文件,logback将尝试查找名为 类路径中的logback-test.xml

  • 如果没有找到这样的文件,它将检查 类路径

  • 如果两个文件均未找到,则logback会自动进行自我配置 使用BasicConfiguration,这将导致记录输出 指向控制台

  • 因此,在您的例子中,logback在类路径中查找
    logback test.xml
    ,并相应地记录


    您可以通过设置名为
    logback.configurationFile

    的系统属性来指定自己的配置文件位置,但为什么会找到logback测试文件呢。当我运行应用程序时,除非我运行测试,否则测试类和资源不应该是可用的。我将其标记为已回答,但我认为在运行非测试代码时,不知何故测试类路径也是可访问的是没有意义的。通常情况并非如此。当slf4j抱怨发现多个slf4j绑定时,它还会给出这些绑定的位置。你能分享一下这个警告吗?