`
jarod2008
  • 浏览: 80509 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

阅读更多

【转自】http://tobato.iteye.com/blog/152573

 

经常看见开发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;

使用如下的配置文件:

Java代码 复制代码
  1. <?xml version= "1.0"  encoding= "UTF-8"  ?>  
  2. <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd" >  
  3.   
  4. <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" >  
  5.   
  6.     <appender name="CONSOLE"   class = "org.apache.log4j.ConsoleAppender" >  
  7.         <layout class = "org.apache.log4j.PatternLayout" >  
  8.             <param name="ConversionPattern"   
  9.                 value="%p [%t] %c{1}.%M(%L) | %m%n" />  
  10.         </layout>  
  11.     </appender>  
  12.   
  13.     <logger name="com.foo" >  
  14.         <level value="INFO" />  
  15.     </logger>  
  16.   
  17.     <logger name="com.foo.common" >  
  18.         <level value="DEBUG" />  
  19.     </logger>       
  20.         
  21.     <root>  
  22.         <level value="WARN" />  
  23.         <appender-ref ref="CONSOLE" />  
  24.     </root>  
  25.   
  26. </log4j:configuration>  
<?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级别输出

分享到:
评论

相关推荐

    druid出现 java.lang.NoClassDefFoundError orgapachelog4j.md

    druid出现 java.lang.NoClassDefFoundError: org/apache/log4j &lt;!-- &lt;dependency&gt; &lt;groupId&gt;log4j&lt;/groupId&gt; ... &lt;artifactId&gt;log4j-over-slf4j&lt;/artifactId&gt; &lt;version&gt;1.7.30&lt;/version&gt; &lt;/dependency&gt;

    log4j使用实战

    log4j.rootLogger=INFO,CONSOLE log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender INFO是日志记录的最低等级,必须写,它和比它高的等级会进入日志,如WARN、ERROR、FATAL、OFF。 关于8个日志等级,参考:...

    Log4j-Logger详解

    Log4j-Logger详细说明以及应用

    Log4j入门和实例

    我的blog&lt;br&gt;http://blog.csdn.net/facepp/archive/2008/04/17/2299857.aspx&lt;br&gt;Log4J简介&lt;br&gt;1 主要由三大组件构成:&lt;br&gt;Logger:决定什么日志信息应该被输出,什么日志信息应该被忽略&lt;br&gt; eg. logrj.logger....

    slf4j-log4j

    用于Failed to load class "org.slf4j.impl.StaticLoggerBinder"问题的jar包

    log4j自定义日志文件名及日志输出格式

    根据项目需要,要求日志文件名及输出的日志内容头为特殊的格式,因此重写了log4j的一些方法,如要求的格式和项目不同,可根据示例参考进行再次的修改

    网站访问记录器 0.1.1 发布_程序

    &lt;param-value&gt;jdbc:postgresql://localhost/visit_logger?user=postgres&password=postgres&charSet=utf-8&lt;/param-value&gt; &lt;/context-param&gt; 4.如何和你的网站集成 参考示例网站中的web.xml,将如下内容加入到你...

    网站访问记录器 0.1.1 发布_数据库

    &lt;param-value&gt;jdbc:postgresql://localhost/visit_logger?user=postgres&password=postgres&charSet=utf-8&lt;/param-value&gt; &lt;/context-param&gt; 4.如何和你的网站集成 参考示例网站中的web.xml,将如下内容加入到你...

    blade-log:刀片服务器默认日志显示

    blade-log 这是一个简单的日志实现,... &lt;artifactId&gt;blade-log&lt;/artifactId&gt; &lt;version&gt;0.1.6&lt;/version&gt; &lt;/dependency&gt; 配置 com.blade.logger.rootLevel=INFO com.blade.logger.dir=./logs com.blade.logger.name=app

    基于SpringBoot自动装配实现的对于OpenFeign扩展请求传递traceId,分布式服务日志查询串联标记

    引用步骤: ...2.基于logback、log4j的MDC机制 3.日志配置中添加traceId引用,如下: &lt;Pattern&gt;[%date{yyyy-MM-dd HH:mm:ss.SSS}] [%X{traceId}] [%thread] %-5level %logger{80} %line - %msg%n&lt;/Pattern&gt;

    Log4net详细说明使用

    本文主要是介绍如何在Visual Studio2008中使用log4net快速创建系统日志,如何扩展以输出自定义字段。 2、一个简单的使用实例 第一步:在项目中添加对log4net.dll的引用,这里引用版本是1.2.10.0。 第二步:程序启动...

    Java进阶课程日志框架视频教程

    --12-Log4j的组件和配置文件介绍.mp4 --13-Log4j的内置日志记录.mp4 --14-Log4j的layout配置.mp4 --15-Log4j的FileAppender配置.mp4 --16-Log4j的JDBCAppender配置.mp4 --17-Log4j的自定义logger.mp4 --18-JCL入门...

    Log4j日志管理系统简单使用说明

    Log4j有三个主要的组件:Loggers,Appenders和Layouts,这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出。综合使用这三个组件可以轻松的记录信息的类型和级别,并可以在运行时控制日志输出的样式和...

    lo4net.dll

    &lt;logger name="testApp.Logging"&gt; &lt;level value="DEBUG"/&gt; &lt;/logger&gt; &lt;appender name="LogFileAppender" type="log4net.Appender.FileAppender" &gt; &lt;param name="File" value="log-file.txt" /&gt; ...

    log4j-1.2.9

    设置log4j的根目录,值为 日志等级(DEBUG,INFO,WARN,ERROR,FATAL) , 输出目标名称 log4j.rootLogger=DEBUG,A1 设置输出方式,常用的有: ConsoleAppender 在控制器中输出信息 RollingFileApperder 在文件中输出...

    线程安全日志记录器

    &lt;br&gt;&lt;br&gt;implementation&lt;br&gt;&lt;br&gt;(******************************************************************************)&lt;br&gt;(* *)&lt;br&gt;(* &lt;&lt;日志接口定义&gt;&gt; *)&lt;br&gt;(* 注:请保持与源接口一致 *)&lt;br&gt;(*******************...

    LINUX与UNIX_SHELL编程指南2

    176&lt;br&gt;&lt;br&gt;18.4.3 提示键入y或n 177&lt;br&gt;&lt;br&gt;18.4.4 case与命令参数传递 177&lt;br&gt;&lt;br&gt;18.4.5 捕获输入并执行空命令 178&lt;br&gt;&lt;br&gt;18.4.6 缺省变量值 179&lt;br&gt;&lt;br&gt;18.5 for循环 180&lt;br&gt;&lt;br&gt;18.5.1 简单的for循环 181&lt;br&gt;...

    Log4j简介 介绍log4j的原理和用法

    log4j的使用习惯,让每个类都拥有一个private static的Logger对象,用来输出该类中的全部日志信息 ,使用xml文件来完成对log4j环境的配置。在项目的main class中的静态初始化块里放log4j环境的配置代码。注意:在一...

    Apache Log4j_1.2.17 完整依赖包

    Apache Log4j_1.2.17 完整依赖包,在jdk1.8.201中测试通过。使用教程https://www.tutorialspoint.com/springmvc/springmvc_log4j.htm

    log4j jar包

    日志类jar包 所属apache分类下 log4j-1.2.17!!! 

Global site tag (gtag.js) - Google Analytics