`
fantaxy025025
  • 浏览: 1309490 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

log4j.xml配置详解

 
阅读更多

From: http://blog.csdn.net/hu_shengyang/article/details/6754031

 

<!-- log4j 系统日志-->
注:本资料通过网络查找然后整理而成

首先要对配置文件的各个参数进行说明,这样才能合理的进行配置。

参数意义说明:

配置根Logger

[html] view plaincopy
 
  1. 其语法为:  
  2.     log4j.rootLogger = [ level ] , appenderName1, appenderName2, …  
  3. level: 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或  
  4. 者您定义的级别。Log4j建议只使用四个级别,优 先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定 义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。  
  5. appenderName: 就是指定日志信息输出到哪个地方。您可以同时指定多个输出目的地。  
  6.         例如:log4j.rootLogger=info,A1,B2,C3  

 

输出级别的种类

[html] view plaincopy
 
  1. OFF 、FATAL 、ERROR、WARN、INFO、DEBUG、TRACE 、ALL  
  2.  OFF 为最高等级 关闭了日志信息  
  3.  FATAL  为可能导致应用中止的严重事件错误  
  4.  ERROR 为严重错误 主要是程序的错误  
  5.  WARN 为一般警告,比如session丢失  
  6.  INFO 为一般要显示的信息,比如登录登出  
  7.  DEBUG 为程序的调试信息  
  8.  TRACE 为比DEBUG更细粒度的事件信息  
  9.  ALL 为最低等级,将打开所有级别的日志  

 

配置日志信息输出目的地

[html] view plaincopy
 
  1. log4j.appender.appenderName = fully.qualified.name.of.appender.class  
  2.  1.org.apache.log4j.ConsoleAppender(控制台)  
  3.  2.org.apache.log4j.FileAppender(文件)  
  4.  3.org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)  
  5.  4.org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)  
  6.  5.org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)  

 

配置日志信息的格式

[html] view plaincopy
 
  1. log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class  
  2.  1.org.apache.log4j.HTMLLayout(以HTML表格形式布局),  
  3.  2.org.apache.log4j.PatternLayout(可以灵活地指定布局模式),  
  4.  3.org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),  
  5.  4.org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)  

 

 

 

[html] view plaincopy
 
  1. <strong>控制台选项</strong>  
  2. Threshold=DEBUG:指定日志消息的输出最低层次。  
  3.  ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。  
  4.  Target=System.err:默认情况下是:System.out,指定输出控制台  
  5.   
  6.  <strong>FileAppender 选项</strong>  
  7.  Threshold=DEBUF:指定日志消息的输出最低层次。  
  8.  ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。  
  9.  File=mylog.txt:指定消息输出到mylog.txt文件。  
  10.  Append=false:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。  
  11.   
  12.  <strong>RollingFileAppender 选项</strong>  
  13.  Threshold=DEBUG:指定日志消息的输出最低层次。  
  14.  ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。  
  15.  File=mylog.txt:指定消息输出到mylog.txt文件。  
  16.  Append=false:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。  
  17.  MaxFileSize=100KB: 后缀可以是KB, MB 或者是 GB. 在日志文件到达该大小时,将会自动滚动,即将原来的内容移到mylog.log.1文件。  
  18.  MaxBackupIndex=2:指定可以产生的滚动文件的最大数。  
  19.  log4j.appender.A1.layout.ConversionPattern=%-4r %-5p %d{yyyy-MM-dd HH:mm:ssS} %c %m%n  

 

日志信息格式中几个符号所代表的含义:

[html] view plaincopy
 
  1. -X号: X信息输出时左对齐;  
  2. %p: 输出日志信息优先级,即DEBUG,INFO,WARN,ERROR,FATAL,  
  3. %d: 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921  
  4. %r: 输出自应用启动到输出该log信息耗费的毫秒数  
  5. %c: 输出日志信息所属的类目,通常就是所在类的全名  
  6. %t: 输出产生该日志事件的线程名  
  7. %l: 输出日志事件的发生位置,相当于%C.%M(%F:%L)的组合,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main (TestLog4.java:10)  
  8. %x: 输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。  
  9. %%: 输出一个"%"字符  
  10. %F: 输出日志消息产生时所在的文件名称  
  11. %L: 输出代码中的行号  
  12. %m: 输出代码中指定的消息,产生的日志具体信息  
  13. %n: 输出一个回车换行符,Windows平台为"/r/n",Unix平台为"/n"输出日志信息换行  
  14. 可以在%与模式字符之间加上修饰符来控制其最小宽度、最大宽度、和文本的对齐方式。如:  
  15. 1)%20c:指定输出category的名称,最小的宽度是20,如果category的名称小于20的话,默认的情况下右对齐。  
  16. 2)%-20c:指定输出category的名称,最小的宽度是20,如果category的名称小于20的话,"-"号指定左对齐。  
  17. 3)%.30c:指定输出category的名称,最大的宽度是30,如果category的名称大于30的话,就会将左边多出的字符截掉,但小于30的话也不会有空格。  
  18. 4)%20.30c:如果category的名称小于20就补空格,并且右对齐,如果其名称长于30字符,就从左边较远输出的字符截掉。  

 

log4j.xml配置如下,log4j.xml存放在WEB-INF目录下

[html] view plaincopy
 
  1. <?xml version="1.0" encoding="GBK" ?>    
  2. <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">    
  3. <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">      
  4.     <!-- 输出日志到控制台  ConsoleAppender -->   
  5.         <appender name="console"   
  6.         class="org.apache.log4j.ConsoleAppender">  
  7.         <param name="Threshold" value="info"></param>  
  8.         <layout class="org.apache.log4j.TTCCLayout">  
  9.             <param name="ConversionPattern" value="TTCCLayout"></param>  
  10.         </layout>  
  11.     </appender>  
  12.   
  13.     <!-- 输出日志到文件  每天一个文件 -->  
  14.     <appender name="dailyRollingFile"  
  15.         class="org.apache.log4j.DailyRollingFileAppender">  
  16.         <param name="Threshold" value="info"></param>  
  17.         <param name="ImmediateFlush" value="true"></param>  
  18.         <param name="File" value="c:/logs/dailyRollingFile.log"></param>  
  19.         <param name="DatePattern" value="'.'yyyy-MM-dd'.log'"></param>  
  20.         <layout class="org.apache.log4j.PatternLayout">  
  21.             <param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss\} %-5p] [%t] {%c:%L}-%m%n"></param>  
  22.         </layout>  
  23.     </appender>   
  24.       
  25.     <!-- 输出日志到文件  文件大小到达指定尺寸的时候产生一个新的文件 -->  
  26.     <appender name="railyFile"   
  27.         class="org.apache.log4j.RollingFileAppender">  
  28.         <param name="File" value="c:/logs/railyFile.log"></param>  
  29.         <param name="ImmediateFlush" value="true"/>  
  30.         <param name="Threshold" value="info"></param>  
  31.         <param name="Append" value="true"></param>  
  32.         <param name="MaxFileSize" value="30KB"></param>  
  33.         <param name="MaxBackupIndex" value="100"></param>  
  34.         <layout class="org.apache.log4j.PatternLayout">  
  35.             <param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss\} %-5p] [%t] {%c:%L}-%m%n"></param>  
  36.         </layout>  
  37.     </appender>  
  38.   
  39.     <!-- 输出日志到文件 -->  
  40.     <appender name="file"  
  41.         class="org.apache.log4j.FileAppender">  
  42.         <param name="File" value="c:/logs/file.log"></param>  
  43.         <param name="Threshold" value="info"></param>  
  44.         <layout class="org.apache.log4j.PatternLayout">  
  45.             <param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss\} %-5p] [%t] {%c:%L}-%m%n"></param>  
  46.         </layout>  
  47.     </appender>  
  48.   
  49.     <!--   
  50.         定义全局的日志输出级别,但是在输出目的地的配置中配置的具体输出级别优先级高于全局定义的优先级。  
  51.         如果在railyFile中定义<param name="Threshold" value="info"></param>,那么将会把info以上级别的信息输出  
  52.      -->  
  53.     <root>       
  54.         <priority value="debug" />       
  55.         <appender-ref ref="console" />    
  56.         <appender-ref ref="dailyRollingFile" />    
  57.         <appender-ref ref="railyFile" />    
  58.         <appender-ref ref="file" />    
  59.     </root>         
  60.   
  61. </log4j:configuration>   

 

在web.xml中添加log4j.xml配置

[html] view plaincopy
 
  1. <!-- log4j 系统日志-->  
  2. <context-param>   
  3.     <param-name>log4jConfigLocation</param-name>   
  4.     <param-value>/WEB-INF/log4j.xml</param-value>   
  5. </context-param>   
  6. <listener>   
  7.     <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>   
  8. </listener>  

 

对Logger的简单封装:

BasicConfigurator.configure();默认先读取log4j.xml,如果不存在则再读取log4j.properties.

 

[java] view plaincopy
 
  1. public class Log4jUtil {  
  2.     private static final String configFile = "log4j.xml";  
  3.       
  4.     static{  
  5.         BasicConfigurator.configure();  
  6.     }  
  7.       
  8.     public Log4jUtil() {  
  9.         super();  
  10.     }  
  11.       
  12.     public static String getConfigFile(){  
  13.         return configFile;  
  14.     }  
  15.       
  16.     public static Logger getLogger(Class clazz){  
  17.         return Logger.getLogger(clazz);  
  18.     }  
  19.       
  20.     public static Logger getLogger(String strClass){  
  21.         return Logger.getLogger(strClass);  
  22.     }  
  23.       
  24.     public static Logger getLogger(String strClass,LoggerFactory loggerFactory){  
  25.         return Logger.getLogger(strClass, loggerFactory);  
  26.     }  
  27.       
  28.       
  29. }  


最后只需在代码中调用即可,格式如下:

 

 

[java] view plaincopy
 
  1. public class HelloLog4j {  
  2.   
  3.     private static Logger logger = Logger.getLogger(HelloLog4j.class);  
  4.   
  5.     public  String getURL(){  
  6.         logger.info("getURL() ... ");  
  7.         return null;  
  8.     }  
  9. }  


这样log4j就配置成功了。

 

 

=

+

+

=

=

=

 

分享到:
评论

相关推荐

    log4j.jar及log4j.xml

    以上内容详细介绍了Log4j.jar的核心组件和log4j.xml配置文件的作用,它们共同构成了Log4j日志框架的基础。通过合理的配置和使用,Log4j能够为开发者提供强大且灵活的日志管理能力,帮助他们更好地监控和维护Java应用...

    log4j.properties配置详解 使用教程

    ### log4j.properties配置详解与使用教程 #### 一、log4j简介 log4j是Apache的一个开源项目,用于实现日志功能。它提供了一种简单的方式来管理和配置应用程序的日志输出,支持多种输出目的地(如控制台、文件等)...

    Log4j.properties配置详解

    ### Log4j.properties配置详解 #### 一、Log4j简介 Log4j是一个非常流行的Java日志框架,它能够帮助开发者轻松管理日志记录。Log4j的主要优点包括灵活性高、性能好以及易于配置。它由三个核心组件组成:记录器...

    SSM整合中的Log4j日志的配置详情

    Log4j 在 SSM 整合中的配置详解 Log4j 是一个功能强大且广泛使用的日志记录工具,特别是在 SSM(Spring、Spring MVC、Mybatis)整合项目中,合理地配置 Log4j 对项目的日志记录和输出至关重要。本文将详细介绍 SSM...

    log4j.properties配置详解.doc

    在实际应用中,通过修改`log4j.properties`或`log4j.xml`文件,可以轻松调整日志配置,满足不同环境和需求。例如,开发阶段可能需要DEBUG级别的详细日志,而生产环境中可能只需要ERROR级别的日志,这时只需更改配置...

    log4j.xml文件的配置文.pdf

    ### 关于Log4j.xml配置文件的理解与应用 #### 一、引言 在Java开发领域,日志记录是至关重要的一个环节。它不仅能够帮助开发者更好地了解程序运行时的状态,还能在出现故障时快速定位问题所在。Log4j作为一款优秀...

    Log4.properties配置详解

    ### Log4j配置详解 #### 一、Log4j简介 Log4j 是一款非常流行的 Java 日志框架,由 Apache 软件基金会所提供。它能够帮助开发者在应用程序中记录日志信息,使得应用程序能够在运行时更加透明地展示其内部状态。Log...

    log4j2-所需jar包+配置详解(详细)

     log4j 2.x版本不再支持像1.x中的.properties后缀的文件配置方式,2.x版本配置文件后缀名只能为".xml",".json"或者".jsn".  系统选择配置文件的优先级(从先到后)如下:  (1).classpath下的名为log4j2-test.json...

    log4j.properties详解与例子

    Log4j支持两种配置格式:XML和Properties(键值对)。本篇主要关注Properties格式。 1. 配置根Logger: 根Logger是所有其他Logger的默认父Logger,它定义了日志记录的全局行为。`log4j.rootLogger`的语法如下: `...

    log4j配置文件说明(完整版)

    Log4j 配置文件说明 Log4j 是一种流行的日志记录工具,用于记录和管理应用程序中的日志信息。配置文件是 Log4j 的核心组件之一,通过配置文件可以控制日志记录的级别、输出目的地和格式。在本文中,我们将详细介绍 ...

    SpringBoot框架配置log4j和log4j2的配置代码

    2. **配置文件**:创建`log4j.properties`或`log4j.xml`文件,定义日志级别和输出目的地。例如: ```properties # log4j.properties 示例 log4j.rootLogger=DEBUG, stdout, file log4j.appender.stdout=org.apache....

    applicationContext.xml 详细配置

    ApplicationContext.xml 配置详解 ApplicationContext.xml 是 Spring 框架中用于配置应用程序的核心配置文件。通过该文件,可以定义 Bean、数据源、Session 工厂、 Hibernate 配置等相关信息,从而实现应用程序的...

    log4j常用配置详解

    ### log4j常用配置详解 ### #### 一、log4j.properties 配置解析 #### 在Java开发领域中,log4j是一款非常流行的日志框架,它提供了丰富的配置选项来满足不同场景下的日志记录需求。本文将详细介绍两种常见的log4j...

    log4j和ibatis配置文档

    《log4j与iBatis配置详解》 在软件开发中,日志管理和数据库操作是两个至关重要的环节。Log4j作为Java世界里最流行的日志框架之一,它提供了强大的日志记录功能,帮助开发者追踪应用程序运行过程中的信息、警告、...

    log4j中配置日志文件相对路径方法(PDF)

    ### Log4j中配置日志文件相对路径方法详解 #### 概述 在软件开发过程中,日志记录是一项重要的功能,它有助于开发者调试程序、监控应用程序的运行状态以及追踪问题。`Log4j`作为一款优秀的日志管理工具,被广泛应用...

    log4j.1.2.7

    Log4j的核心配置文件是`log4j.properties`或`log4j.xml`。在1.2.7版本中,你可以通过配置文件指定日志的输出级别、输出目标和格式。例如: ```properties # log4j.properties 示例 log4j.rootLogger=INFO, stdout, ...

    新版本与旧版本log4j.jar包下载,附使用说明----.zip

    3. **IDEA与log4j**: IntelliJ IDEA(简称IDEA)是一款流行的Java集成开发环境,它支持将log4j集成到项目中,通过配置pom.xml或build.gradle文件添加依赖,或者手动将log4j.jar添加到项目的类路径下,以便在IDEA中...

    log4j使用笔记

    #### 四、log4j 配置详解 1. **配置文件**: - `log4j.properties` 或 `log4j.xml` 文件用于定义 log4j 的配置规则。 - 配置文件通常放置在项目的根目录或者类路径下。 - 如果未指定配置文件的位置,则 log4j 会...

    log4j.zip和log4j.jar日志文档的处理

    1. **配置文件详解**:了解如何在`log4j.properties`或`log4j.xml`中设置日志级别、指定Appender和Layout,以及应用过滤器。 2. **使用Logger**:学习如何在代码中创建和使用Logger对象,以及如何设置日志级别。 3...

Global site tag (gtag.js) - Google Analytics