commons-logging 与 Log4j 的结合

commons-logging组件与log4j组件的使用,已成为当今非常流行的日志记录方法,在许多
开源软件设计中,都会看到它们的身影;它们的组合使用,不仅简化了的log4j使用,而且还实
现了日志工具的灵活配置,以下介绍其使用方法:

一.commons-logging.properties的配置
#LogFactory implement
org.apache.commons.logging.LogFactory=org.apache.commons.logging.impl.LogFactoryImpl
# SimpleLog
#org.apache.commons.logging.Log = org.apache.commons.logging.impl.SimpleLog
# JDK 1.4 logger
#org.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Logger
# Avalon Toolkit
#org.apache.commons.logging.Log=org.apache.commons.logging.impl.LogKitLogger
#Log4j
org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger

二.log4j.properties的配置
#rootLogger
log4j.rootLogger = DEBUG,stdout, R
#自定义输出目的地stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
#定义输出目的格式
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
#定义具体的输出样式
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}-[TEST] %p [%t] %C.%M(%L)-%m%n
#自定义输出目的地R
log4j.appender.R=org.apache.log4j.FileAppender
log4j.appender.R.file=D:\\app\\personalProject\\classes\\hailin.log
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}-[TEST] %p [%t] %C.%M(%L)-%m%n
#定义具体的类日志属性
log4j.logger.com.tongda.whl.log=INFO

三.把commons-logging.properties,log4j.properties放在classpath下
  commons-logging.properties可以不需要(参照commons-logging组件的使用说明),系统会有一个
自动的寻找过程,log4j.properties必须作配置(参照log4j组件的使用说明),至少配置一个根日志
(rootLogger)的级别及其输出地,如果不做配置会报错。如果具体的类不作配置日志属性,会默认继承根日志的
属性;如果需具体配置,则如下所示:
log4j.logger.com.tongda.whl.log=INFO,定义了com.tongda.whl.log包的日志属性

四.程序使用
package com.tongda.whl.log;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class LogTest {
  private static Log log=LogFactory.getLog(LogTest.class);
  public static void main(String [] args){
  // System.out.println(log.getClass());//测试调用的是哪个日志工具
  // System.out.println(LogTest.class);//测试类的路径
   log.info("ddddddddd");
   log.debug("xxxxxxxxx");
  }
}
输出如下:2009-01-14 10:25:30-[TEST] INFO [main] com.tongda.whl.log.LogTest.main(9)-ddddddddd
[TEST]一般是项目名称
输出级别是:INFO

 

你可能感兴趣的:(commons-logging 与 Log4j 的结合)