我有一个gradle项目,结构看起来像这样
>
> main (one project)
> shared (another project)
> api
>> shared2 (another project)
主项目取决于共享和共享2项目。 shared和shared2项目的src / test
/ resources文件夹中都有一个logback-test.xml,主项目的src / main
/ resources文件夹中有一个logback.xml。
当我使用其主Application类在eclipse中运行主项目时,我希望在classpath中只加载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文件中,我在DEBUG级别启用了org.springframework调试,在logback.xml中启用了它在INFO级别的设置。当我启动应用程序时,我看到了弹簧DEBUG日志。
以下是github示例项目 https://github.com/adeelmahmood/logback-test-conf-issue
答案 0 :(得分:4)
以下是logback库查找配置xml文件的顺序:(来自文档)
Logback尝试在类路径中查找名为logback.groovy的文件。
如果未找到此类文件,则logback会尝试查找名为的文件 类路径中的logback-test.xml。
如果找不到这样的文件,它会检查文件中的logback.xml 类路径..
- 醇>
如果找不到任何文件,则logback会自动配置自身 使用BasicConfigurator将导致日志记录输出 指向控制台。
因此,在您的情况下,logback在类路径中找到logback-test.xml
并相应地记录。
您可以通过设置名为logback.configurationFile
的系统属性来指定您自己的配置文件位置。