log4j 多配置文件并存

本文展示了如何在Java中创建自定义的log4j配置工厂,实现加载多个配置文件。通过Custom2LogFactory类,结合log4j2.properties配置文件,动态配置日志输出到控制台和文件。示例代码详细解释了如何获取并使用自定义的日志记录器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


import java.net.URL;

import org.apache.log4j.Hierarchy;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
import org.apache.log4j.spi.LoggerRepository;
import org.apache.log4j.spi.RootLogger;

/**
 *
 * @author think
 *
 */
public class Custom2LogFactory {
 //日志仓库实例
 static LoggerRepository h = new Hierarchy(new RootLogger(Level.ALL));
 static URL urlConfigFile =  Custom2LogFactory.class.getResource("/log4j2.properties");//"log4j2.properties";
 static {
 //配置文件定制日志仓库属性,这里面你可以做更多的文章
 //来定义自己的配置文件位置等等
  new PropertyConfigurator().doConfigure(urlConfigFile, h);
 }
  
 public static Logger getLogger(String loggerName) {
  return h.getLogger(loggerName);
 }

}

 

 

---

log4j2.properties

### 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=Alog4j.log
#log4j.appender.file.Threshold=ERROR
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=INFO, stdout,file
#log4j.logger.log4j=info

 

 

----------------

test

 

package log4j;

import org.apache.log4j.Logger;

public class TestLog4j2 {
// static Logger log =   Logger.getLogger(TestLog4j2.class.getName());
 // static Logger logger =   CustomLogFactory.getLogger(TestLog4j2.class.getName());
   Logger logger2 =   Custom2LogFactory.getLogger(this.getClass().getName());
 
  void show()
  {
    log.info("default");
   logger.info("test my log");
   logger2.warn(" my log2 warm");
   logger2.info(" my log2 info");
  }
 
  public Logger getLoger(String className)
  {
   logger = CustomLogFactory.getLogger(className);
   return logger;
  }
  public static void main(String[] args) {
 
      new TestLog4j2().show();
}
}

 

 

 其他配置文件

 ### set log levels ###
log4j.rootLogger = debug ,  stdout ,  D ,  E

### 输出到控制台 ###
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

### 输出到日志文件 ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = logs/log.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG ## 输出DEBUG级别以上的日志
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

### 保存异常信息到单独文件 ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender

  log4j.appender.D.File = logs/error.log ## 异常日志文件名
log4j.appender.D.Append = true
log4j.appender.D.Threshold = ERROR ## 只输出ERROR级别以上的日志!!!
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

 

 

本文来自优快云博客,转载请标明出处:http://blog.youkuaiyun.com/newhappy2008/archive/2008/05/31/2499250.aspx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值