`
fantaxy025025
  • 浏览: 1250153 次
  • 性别: 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配置详解高清版

    Log4j配置详解 特别清晰,大家可以下载来参考学习,有问题可以反馈

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

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

    log4j.properties配置详解

    Log4J的配置文件(Configuration File)就是用来设置记录器的级别、存放器和布局的,它可接key=value格式的设置或xml格式的设置信息。通过配置,可以创建出Log4J的运行环境。

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

    log4j配置文件说明,让你轻松配置日志文件

    log4j入门到详解

    目录 ...................... 1. Log4j 简介 ........... 2. 下载与使用.............4.2 XML 配置文件详解 .... 4.3 properties 比较详细的例子 4.4 在代码中使用 Log4j .. 4.5 注意事项 . 5. Properties 文件实例说明

    log4j.properties详解与例子

    在实际编程时,要使Log4j真正在系统中运行事先还要对配置文件进行...Log4j支持两种配置文件格式,一种是XML格式的文件,一种是java properties(key=value)【Java特性文件(键=值)】。(这里只说明properties文件)

    log4j常用配置详解

    log4j常用配置,properties 和.xml两种配置示例

    log4j2的配置案例,可直接使用

    配置日志记录器输出的状态为“fatal”,意味着只输出致命错误信息。 定义了一个名为“baseDir”的属性,其值为"./logs",用于配置日志文件的存储路径。 配置了三个日志输出器,分别是控制台输出器“Console”以及三...

    log4j,log4j2,logback 日志插件的使用例子

    2. log4j2 的配置详解,JDBC 配置,CloseableThreadContext 的使用(自定义输出日志文件 例如 logback MDC) 3.logback 的XML配置与使用,MDC的使用,SiftingAppender,DBAppender(c3p0,druid) 详细查看代码:README.md ...

    log4j配置详解.

    Log4J的配置文件(Configuration File)就是用来设置记录器的级别、存放器和布局的,它可接key=value格式的设置或xml格式的设置信息。通过配置,可以创建出Log4J的运行环境。

    常用log4j的配置详解

    log4j的配置详细介绍,xml和properties两种格式,同时有一个完整的文档

    log4j从入门到详解

    大部分内容摘自网络,整理:雪飘寒 目录 Log4j从入门到详解 目录 1. Log4j简介 ...4.2 XML配置文件详解 4.3 properties比较详细的例子 4.4 在代码中使用Log4j 4.5 注意事项 5. Properties文件实例说明

    Log4J配置详解

    详细讲解Log4j的配置问题,包括XML文件配置方法和利用配置文件配置方法。

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    3.5.1 下载并配置dom4j 88 3.5.2 dom4j api介绍 88 3.5.3 第一个实例 92 3.5.4 第二个实例 94 3.6 解析名称空间 96 3.6.1 dom和名称空间 96 3.6.2 sax和名称空间 97 3.6.3 jdom和名称空间 98 3.6.4 dom4j和...

    logback+self4j 进行日志记录

    关于logback-test.xml配置详解,包括简单项目demo解压运行

    mybatis 一对多多对多案例详解

    2、建立maven 工程 导入相关依赖 ,mybatis,mysql,junit,log4j; 3、建立实体类User和Role; 4、编写UserDao,RoleDao以及映射文件UserDaoMapping.xml ,RoleDaoMapping.xml和主配置文件SqlMapConfig.xml,下面上代码...

    java吐血精华大奉送,你要的都能找到(最新版本)

    技术人员也过个年吧,java_吐血奉献_超值大礼包(最新版本)_含struts,hibernate,spring,log4j,web.xml配置详解,java分页大全,cvs教程,tomcat,swing教程,jboss,及各种框架的配置文件范例

    吴天雄--SSM框架整合笔记.doc

    搭建整合环境、Spring整合SpringMVC(配置web.xml文件、配置springmvc.xml文件)、Spring整合Mybatis(配置applicationContext.xml文件、配置mybatis-config.xml文件、jdbc.properties、log4j.properties)附有项目...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    3.5.1 下载并配置dom4j 88 3.5.2 dom4j api介绍 88 3.5.3 第一个实例 92 3.5.4 第二个实例 94 3.6 解析名称空间 96 3.6.1 dom和名称空间 96 3.6.2 sax和名称空间 97 3.6.3 jdom和名称空间 98 3.6.4 dom4j和...

Global site tag (gtag.js) - Google Analytics