Spring Framework application.properties vs logback.xml

时间:2017-01-19 06:16:03

标签: java spring spring-boot logback

我使用Spring和Spring启动。最近在尝试使用EhCache时,我尝试为EhCache启用日志记录。使用以下命令在application.properties中设置日志级别:

logging.level.org.springframework.cache: DEBUG

没有效果。所以我遇到了一种使用' logback'启用日志记录的方法。现在我需要将日志配置放入文件logback.xml。

我的问题是如何在Spring中处理配置? logback.xml是否优先于application.properties? 有没有方法只使用一种配置? application.properties还是logback.xml? 有两种配置是什么意思?

编辑: 后来我发现,要启用EhCache日志记录,我需要在我的application.properties中添加这一行:

logging.level.net.sf.ehcache: DEBUG

2 个答案:

答案 0 :(得分:0)

是。您只能使用一个配置logback.xml来执行日志记录部分 使用<springProperty>标记,您可以在Logback文件中使用Spring Environment属性。

<springProperty scope="context" name="fluentHost" source="myapp.fluentd.host"
        defaultValue="localhost"/>
<appender name="FLUENT" class="ch.qos.logback.more.appenders.DataFluentAppender">
    <remoteHost>${fluentHost}</remoteHost>
    ...
</appender>

Ref

答案 1 :(得分:0)

Logback将在类路径中查找文件logback_test.xml,如果找不到第一个,则返回logback.xml。

假设您正在使用maven,则您的属性文件中不需要任何内容​​。通常是src / main / resources中的logback.xml和src / test / resources中的logback_test.xml。

你需要实现logback和api,通常在你的pom中你需要这个:

<!-- API -->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.22</version>
</dependency>
<!-- Implementation -->
<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>1.1.8</version>
</dependency>

Ehcache将使用slf4j,因此您的logback配置将被选中。

有关logback config的信息,请参阅http://logback.qos.ch/manual/configuration.html