您的位置:首页 > 编程语言 > Java开发

[置顶] 使用logback随意控制spring源码相关包的日志输出

2017-05-11 15:53 453 查看
之所以我们能随意控制spring相关包(使用slf4j记录日志的包-大部分包),得益于以下特性:

1.slf4j的LoggerFactory.getLogger(Application.class)返回的是与名字相关的单例类,每个类名只创建一个Logger实例

注:

在logback的LoggerContext类中使用private Map<String, Logger> loggerCache;存储名字对应的logger记录

2.logback的日志级别继承,如果没有定义com.test1.student包的日志级别,那么该包将会继承com.test1包的日志级别,如果存在已com.test1.student包名命名的logger,那么将会使用该包对应的logger级别来记录日志

例子

<logger name="com.baeldung.produceimage" level="INFO" />
<logger name="com.baeldung.produceimage.Application" level="WARN" />

那么在Application该类中定义的类对应的logger日志级别为WARN,如果不存在‘<logger name="com.baeldung.produceimage.Application"
level="WARN" />’该条配置,那么Application该类中定义的类对应的logger日志级别为INFO

3.所以我们可以在logback.xml中通过下面的方式来控制spring代码日志级别

<logger name="org.springframework" level="WARN" />
<logger name="org.springframework.web.servlet.mvc" level="WARN" />
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: