Log4j 学习笔记之三

引言:

      理论中浅谈,实践中理解。用例子还实践最为直接和明了的总结了。

需求:

      项目名:LogPro

      文件目录

 

+LogPro  //项目名
    - A.java
    - B.java
    - TestMain.java   //主程序
    +bbb   //文件夹
        -C.java
        -D.java

   其中,A、B、C、D四个文件中有着各自的execute的方法,方法里为日志的输出,如

 

public void execute(){
		log.info("class A info message");
		log.debug("class A debug message");
		log.error("class A error message");
	}

 

   要求:

    一次执行,达下下面的要求:

    1、把A、B、C、D执行的日志信息输出到按制台上

    2、把A、B 的日志信息以a.log的文件输出

    3、把C、D 的日志信息以b.log的文件输出

 

 

具体的代码实现 :(使用的是commons-logging与log4j的结合)

 

public class A {
	//protected Logger log = Logger.getLogger(A.class.getName());
	protected Log log = LogFactory.getLog(A.class); //当前的类
	public void execute(){
		log.info("class A info message"); //里面的A是对这条信息的标识
		log.debug("class A debug message");
		log.error("class A error message");
	}
}

    B、C、D类同上,只是有两处修改,请注意。

 

 

public class TestMain {

	// protected Logger log = Logger.getLogger(TestMain.class.getName());

	public void execute() {
		Log log = LogFactory.getLog(TestMain.class);

		log.info("class TestMain info message");
		log.debug("class TestMain debug message");
		log.error("class TestMain error message");

		A a = new A();
		B b = new B();
		C c = new C();
		D d = new D();

		a.execute();
		b.execute();
		c.execute();
		d.execute();
	}
	
	public static void main(String[] args) {

		TestMain testMain = new TestMain();
		testMain.execute();
	}
}

    测试主类。

 

    配置文件Log4j.properties

 

#print to console
log4j.rootLogger = debug, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t](%r %x  %c) (%F:%L) - %m%n

log4j.logger.A=debug,R
log4j.logger.B=debug,R

#print to file a.log
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=a.log
# Control the maximum log file size
log4j.appender.R.MaxFileSize=100KB
# Archive log files (one backup file here)
log4j.appender.R.MaxBackupIndex=1
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-dd hh:mm:ss}:%p %t %c - %m%n 


log4j.logger.bbb.C=debug,R2
log4j.logger.bbb.D=debug,R2
#print to file a.log
log4j.appender.R2=org.apache.log4j.RollingFileAppender
log4j.appender.R2.File=b.log
# Control the maximum log file size
log4j.appender.R2.MaxFileSize=100KB
# Archive log files (one backup file here)
log4j.appender.R2.MaxBackupIndex=1
log4j.appender.R2.layout=org.apache.log4j.PatternLayout
log4j.appender.R2.layout.ConversionPattern=%d{yyyy-MM-dd hh:mm:ss}:%p %t %c - %m%n 

 

运行,测试成功。

P.S 这里面我用的是maven工程,里面的log4.properties是放在classpath的,所以会自动加载,输出的a.log、b.log也是用的相对地址,所以执行后也在项目文件夹里面。

 

END

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值