VIRGIN FOREST OF JAVA
不要埋头苦干,要学习,学习,再学习。。。。。
powered by R.Zeus

Log4j-----how to use in commons-logging-1.0.4.jar

Logger - 日志写出器,供程序员输出日志信息

Appender - 日志目的地,把格式化好的日志信息输出到指定的地方去
ConsoleAppender - 目的地为控制台的Appender
FileAppender - 目的地为文件的Appender
RollingFileAppender - 目的地为大小受限的文件的Appender

Layout - 日志格式化器,用来把程序员的logging request格式化成字符串
PatternLayout - 用指定的pattern格式化logging request的Layout


### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

### direct messages to file hibernate.log ###
#log4j.appender.file=org.apache.log4j.FileAppender
#log4j.appender.file.File=hibernate.log
#log4j.appender.file.layout=org.apache.log4j.PatternLayout
#log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

### set log levels - for more verbose logging change 'info' to 'debug' ###

log4j.rootLogger=warn, stdout    #所有配置继承此配置(在此基础增加),可不要
#可定义自己的级别:
log4j.logger.test=info
#log4j.logger必需;其后可加package name or class name;

使用:
package test;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

/**
 * @author herald
 *
 * TODO 要更改此生成的类型注释的模板,请转至 窗口 - 首选项 - Java - 代码样式 - 代码模板
 */
public class Test {

 public static void main(String[] args) {
  Log log = LogFactory.getLog("test");         其如果存在"test",不重新建立log  
  log.info("aa");
  log.error("bbbbbb");
 }
}


源码:
CategoryKey key = new CategoryKey(name);
  // Synchronize to prevent write conflicts. Read conflicts (in
  // getChainedLevel method) are possible only if variable
  // assignments are non-atomic.
  Logger logger;

  synchronized (ht) {
   Object o = ht.get(key);
   if (o == null) {
    logger = factory.makeNewLoggerInstance(name);
    logger.setHierarchy(this);
    ht.put(key, logger);
    updateParents(logger);
    return logger;
   } else if (o instanceof Logger) {
    return (Logger) o;
   } else if (o instanceof ProvisionNode) {
    //System.out.println("("+name+") ht.get(this) returned
    // ProvisionNode");
    logger = factory.makeNewLoggerInstance(name);
    logger.setHierarchy(this);
    ht.put(key, logger);
    updateChildren((ProvisionNode) o, logger);
    updateParents(logger);
    return logger;
   } else {
    // It should be impossible to arrive here
    return null; // but let's keep the compiler happy.
   }
  }
 }

posted on 2005-08-11 22:30 R.Zeus 阅读(971) 评论(0)  编辑  收藏 所属分类: Log4j

只有注册用户登录后才能发表评论。


网站导航: