【配置文件】log4j是什么log4j

log4j,简单的说就是用于在应用程序中打印日志的工具,目前除了支持java外,还有C,C++,C#,Perl,Ruby等版本。这里只是简单的讨论下java中log4j。

log4j主要有三个组件,分别是Loggers,Appenders和Layouts。三个组件都带了s,显示是复数。Logger相当于记录器,它控制着打印什么样的信息,这些信息被分成了6个控制级别,分别是Trace,Debug,Info,Warn,Error和Fatal。通常情况下每个Logger都有与之对应的名称,用静态方法getLogger()来获得当前Logger,一种习惯的做法是Logger.getLogger(Object.class)。Logger之所以成为带Loggers,其之一是我们可以通过静态方法获取任意多个Logger;之二是Logger存在继承关系,一种依赖与它们名称的继承关系,比如Logger("com.foo")就是Logger("com.foo.a")的父亲,这中继承关系使得没有设定控制级别的子Logger拥有父Logger的控制级别。

Appender描述log输出的目的地,log的Appedner可以是console,file,GUI components,JMS等等,也可以定制自己Appender通过继承AppenderSkeleton类来实现。一个Logger可以有多个Appender,由于Logger的继承关系,同样使得子Logger拥有父Logger的Appender,同时还可以拥有自己的Appender。

Layout描述了log输出的格式,主要用到的类是PatternLayout,这个类里面定义关于转换输出格式用到的一些描述符。

关于怎么使用log4j

log4j为了简化开发提供了配置模式,配置文件可以是XML格式或者properties格式(key=value)。一个简单propterty格式配置文件(log4j.properties):

  1. # Set root logger level to DEBUG and its only appender to stdout and R. log4j.rootLogger=DEBUG, stdout,R  
  2. log4j.appender.stdout=org.apache.log4j.ConsoleAppender  
  3. log4j.appender.stdout.layout=org.apache.log4j.PatternLayout  
  4. # Pattern to output the caller's file name and line number.  
  5. log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n  
  6. log4j.appender.R=org.apache.log4j.RollingFileAppender  
  7. log4j.appender.R.File=example.loglog4j.appender.R.MaxFileSize=100KB# Keep one backup filelog4j.appender.R.MaxBackupIndex=1  
  8. log4j.appender.R.layout=org.apache.log4j.PatternLayout  
  9. log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n  
# Set root logger level to DEBUG and its only appender to stdout and R. log4j.rootLogger=DEBUG, stdout,R
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
# Pattern to output the caller's file name and line number.
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=example.loglog4j.appender.R.MaxFileSize=100KB# Keep one backup filelog4j.appender.R.MaxBackupIndex=1
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
一个简单的XML格式配置文件(log4j.xml):

  1. <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">  
  2. <appender name="Console" class="org.apache.log4j.ConsoleAppender">  
  3.    <layout class="org.apache.log4j.PatternLayout">  
  4.     <param name="ConversionPattern" value="%m%n" />  
  5. </layout>  
  6. </appender>  
  7. <appender name="rollingFileAppender" class="org.apache.log4j.RollingFileAppender">        
  8.         <param name="File" value="TEST.log" />        
  9.         <param name="Append" value="true" />      
  10.         <param name="MaxBackupIndex" value="10" />    
  11.         <param name="MaxFileSize" value="512000KB"/>  
  12.         <layout class="org.apache.log4j.PatternLayout">      
  13.             <param name="ConversionPattern" value="%p (%c:%L)- %m%n" />      
  14.         </layout>      
  15.     </appender>    
  16. <logger name="com.test">  
  17.    <level value ="DEBUG"/>  
  18.    <appender-ref ref="fileAppender"/>  
  19. </logger>  
  20. </log4j:configuration>  

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false"> <appender name="Console" class="org.apache.log4j.ConsoleAppender"> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%m%n" /> </layout> </appender> <appender name="rollingFileAppender" class="org.apache.log4j.RollingFileAppender"> <param name="File" value="TEST.log" /> <param name="Append" value="true" /> <param name="MaxBackupIndex" value="10" /> <param name="MaxFileSize" value="512000KB"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%p (%c:%L)- %m%n" /> </layout> </appender> <logger name="com.test"> <level value ="DEBUG"/> <appender-ref ref="fileAppender"/> </logger> </log4j:configuration>

在code里,使用PropertyConfigurator.configure(configFileUrl&str) 来加载相应的配置文件。另外,log4j还提供了一个最基本配置BasicConfigurator.configure(),这个简单的配置使用console appender,layout格式为 "%-4r [%t] %-5p %c %x - %m%n"。也可以使用java property来设置log4j.properties这个配置文件:java.property.log4j.configuration=file:/d:/log4j.properties。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值