如何更好的掌控日志输出-Log4j <logger>配置项介绍

经常看见开发Web应用的时候,有人被控制台输出的大量日志弄得眼花缭乱,启动一个应用,控制台打出
N多没用的日志。那么,如何控制最大限度log4j的配置文件输出需要的调试信息呢?

Log4j的Logger组件配置可以帮助我们屏蔽不必要的日志输出,尤其在项目应用了大量第三方组件的时候,
通过控制Logger组件可以控制输出某一个组件的日志级别,帮助我们更好的进行调试。

注意:控制的粒度到类一级。也就是说,可以控制某一个类的日志如何输出。
限制:虽然不可以控制到方法一级,但是基本上也够用了。

假设我们现在的类命名空间在 com.foo 下面
我们有2个包
package com.foo.cartoon
package com.foo.common

这2个包下面分别有自己的类文件
在package com.foo.cartoon包下有
com.foo.cartoon.Cat;

在package com.foo.common包下有
com.foo.common.Omia;

使用如下的配置文件:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%p [%t] %c{1}.%M(%L) | %m%n"/>
</layout>
</appender>

<logger name="com.foo">
<level value="INFO"/>
</logger>

<logger name="com.foo.common">
<level value="DEBUG"/>
</logger>

<root>
<level value="WARN"/>
<appender-ref ref="CONSOLE"/>
</root>

</log4j:configuration>



那么 针对所有日志(<root>项配置) 都使用WARN级别输出
com.foo 路径下的Class 都使用INFO 级别输出
com.foo.common 路径下的Class 都使用DEBUG 级别输出

---------------

假如想要控制com.foo.common.Omia这一个类的日志输出级别
只需要使用如下配置
<logger name="com.foo.common.Omia">
<level value="DEBUG"/>
</logger>

---------------

如果项目中使用了第三方组件,那么可以用这样的方式控制日志

<logger name="org.apache.struts2">
<level value="DEBUG"/>
</logger>

<logger name="org.springframework">
<level value="INFO"/>
</logger>

这样就可以让struts2的日志按Debug级别输出,让Spring的日志按Info级别输出
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值