博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【配置文件】log4j是什么log4j
阅读量:7210 次
发布时间:2019-06-29

本文共 3941 字,大约阅读时间需要 13 分钟。

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输出的格式,主要用到的类是,这个类里面定义关于转换输出格式用到的一些描述符。

关于怎么使用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,Rlog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.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%nlog4j.appender.R=org.apache.log4j.RollingFileAppenderlog4j.appender.R.File=example.loglog4j.appender.R.MaxFileSize=100KB# Keep one backup filelog4j.appender.R.MaxBackupIndex=1log4j.appender.R.layout=org.apache.log4j.PatternLayoutlog4j.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。

转载地址:http://uerum.baihongyu.com/

你可能感兴趣的文章
Nginx入门笔记之————配置文件结构
查看>>
SQL Server-聚焦深入理解死锁以及避免死锁建议(三十三)
查看>>
Android(Linux)实时监控串口数据
查看>>
Open Sans字体兼容问题解决办法[font-face]
查看>>
现在的我为什么不泡技术论坛了
查看>>
AES加密
查看>>
MPLS LDP随堂笔记1
查看>>
HTTPS 也不安全?被发现新漏洞会暴露你的数据
查看>>
MySQL · 最佳实践 · 什么时候该升级内存规格
查看>>
花卉世界大观园和杂技之游
查看>>
安全问题会对网络购物季产生负面影响吗
查看>>
2016年日本信息安全市场规模分析
查看>>
微软:超过96%的企业用户正在测试Win10
查看>>
Google VC投资SDN初创公司Plexxi
查看>>
英特尔在移动市场另辟蹊径
查看>>
英特尔收购Movidius背后:为什么我们需要一款专门的CV处理芯片?
查看>>
三大新闻机构起诉FBI,FBI与苹果大战续集开幕?
查看>>
未来数据中心的选择:宽带多模光纤
查看>>
信息安全隐患日趋严重 专家呼吁政策监管仍待加强
查看>>
Java 代理(proxy)模式
查看>>