ade*_*ood 5 logback slf4j gradle build.gradle spring-boot
我有一个 gradle 项目,结构如下所示
>
> main (one project)
> shared (another project)
> api
>> shared2 (another project)
Run Code Online (Sandbox Code Playgroud)
main 项目依赖于 shared 和 shared2 项目。shared 和 shared2 项目在其 src/ test/resources 文件夹中都有一个 logback-test.xml,主项目在其 src/ main/resources 文件夹中有一个 logback.xml 。
当我使用主 Application 类在 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
Run Code Online (Sandbox Code Playgroud)
在两个 logback-test.xml 文件中,我都在 DEBUG 级别启用了 org.springframework 调试,而在 logback.xml 中,它在 INFO 级别进行了设置。当我启动应用程序时,我会看到 spring 调试日志。
这是示例 github 项目 https://github.com/adeelmahmood/logback-test-conf-issue
以下是 logback 库查找配置 xml 文件的顺序:(来自文档)
Logback 尝试在类路径中找到一个名为 logback.groovy 的文件。
如果没有找到这样的文件,logback 会尝试在类路径中找到一个名为 logback-test.xml 的文件。
如果没有找到这样的文件,它会检查类路径中的文件 logback.xml..
如果两个文件都没有找到,logback 会使用 BasicConfigurator 自动配置自己,这将导致日志输出被定向到控制台。
因此,在您的情况下,logbacklogback-test.xml在类路径中找到并相应地记录。
您可以通过设置名为 的系统属性来指定您自己的配置文件位置logback.configurationFile。
| 归档时间: |
|
| 查看次数: |
6348 次 |
| 最近记录: |