我正在使用slf4j,logback来登录我的Spring应用程序。我已配置为排除common-logging并添加jcl-over-slf4j桥。
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.12</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>1.7.12</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.3</version>
</dependency>
我的logback.xml如下所示:
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
<logger name="com.my" level="DEBUG" />
问题是当运行maven构建时,spring中的类总是以DEBUG级别打印,这会使用详细信息污染控制台。但是,当使用Tomcat运行应用程序时,这不会发生。
另外,如果我扩展一类Spring,例如HttpSessionRequestCache,执行来自Spring类的日志记录语句,就好像它从子类中获取级别一样!使用Tomcat运行时会发生这种情况。
如何让Maven尊重logback.xml配置?