log4j输出到指定日志文件

log4j输出到指定日志文件

1、Log4j的概念
Log4j中有三个主要的组件,它们分别是 Logger、Appender和Layout,Log4j 允许开发人员定义多个Logger,每个Logger拥有自己的名字,Logger之间通过名字来表明隶属关系。有一个Logger称为Root,它永远存在,且不能通过名字检索或引用,可以通过Logger.getRootLogger()方法获得,其它Logger通过 Logger.getLogger(String name)方法。
   Appender则是用来指明将所有的log信息存放到什么地方,Log4j中支持多种appender,如 console、files、GUI components、NT Event Loggers等,一个Logger可以拥有多个Appender,也就是你既可以将Log信息输出到屏幕,同时存储到一个文件中。
   Layout的作用是控制Log信息的输出方式,也就是格式化输出的信息。
   Log4j中将要输出的Log信息定义了5种级别,依次为DEBUG、INFO、WARN、ERROR和FATAL,当输出时,只有级别高过配置中规定的级别的信息才能真正的输出,这样就很方便的来配置不同情况下要输出的内容,而不需要更改代码,这点实在是方便啊。

 

2、Log4j的配置文件

Java代码 复制代码
  1. log4j.logger.myTest1=INFO,A   
  2. log4j.appender.A=org.apache.log4j.DailyRollingFileAppender   
  3. log4j.appender.A.File=c:/rolling.log   
  4. log4j.appender.A.layout=org.apache.log4j.PatternLayout   
  5. log4j.appender.A.layout.ConversionPattern=%d%m%n   
  6.   
  7. log4j.logger.myTest2=INFO,B   
  8. log4j.appender.B=org.apache.log4j.ConsoleAppender   
  9. log4j.appender.B.layout=org.apache.log4j.PatternLayout   
  10. log4j.appender.B.layout.ConversionPattern=%l%d%m%n  
log4j.logger.myTest1=INFO,A
log4j.appender.A=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A.File=c:/rolling.log
log4j.appender.A.layout=org.apache.log4j.PatternLayout
log4j.appender.A.layout.ConversionPattern=%d%m%n

log4j.logger.myTest2=INFO,B
log4j.appender.B=org.apache.log4j.ConsoleAppender
log4j.appender.B.layout=org.apache.log4j.PatternLayout
log4j.appender.B.layout.ConversionPattern=%l%d%m%n

 

 3.Log4j在程序中的使用

Java代码 复制代码
  1. import org.apache.log4j.Logger;   
  2.   
  3. public class UserDao {   
  4.   
  5.     public void add(){   
  6.         /**  
  7.          * 此外可以指定用哪个日志,myTest1或者myTest2  
  8.          * 此外还存在一个小问题,就是即使我指定了输出到哪个日志标签,  
  9.          * 另外一个标签也会执行,不会没有输出内容  
  10.          */  
  11.         Logger log = Logger.getLogger("myTest1");   
  12.         for(int i=0;i<10;i++){   
  13.             log.debug("DDDDDDDDDDDDD");   
  14.             log.info("IIIIIIIIIIIIIIIIII");   
  15.             log.warn("WWWWWWWWWWWWWWWWWWWWWW");   
  16.             log.error("EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE");   
  17.         }   
  18.     }   
  19.        
  20.     public static void main(String[] args){   
  21.         UserDao userdao = new UserDao();   
  22.         userdao.add();   
  23.     }   
  24. }  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值