Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1614146
  • 博文数量: 585
  • 博客积分: 14610
  • 博客等级: 上将
  • 技术积分: 7402
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-15 10:52
文章存档

2013年(5)

2012年(214)

2011年(56)

2010年(66)

2009年(44)

2008年(200)

分类: Java

2008-05-15 16:14:16

配置log4j,替代log4j.properties (log4j.xml)

   在项目应用中用log4j是件很平常的事情,只要在程序跑的时候初始log4j就ok了,这里关键是让log4j找到log4j.properties 或log4j.xml 。如果有这样的需求,希望log4j的输出可以让用户指定,那怎么办呢?很明显我们应该想到的是通过读取配置,配置是用户可以更改的。当然如果直接暴露log4j.properties(log4j.xml)给用户,也是可以的,但这不是最理想的,而且也不能让用户看到那么他不需要的资讯。由此我们想到的是让用户设置简单的配置,然后通过程序读取该配置来完成设置log4j。

例子:


import java.util.Properties;

import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
public class MyApp {
  static Logger logger = Logger.getLogger(MyApp.class.getName());
  public static void main(String[] args) {
  Properties properties = new Properties();
  properties.setProperty("log4j.rootCategory", "debug, R");
  properties.setProperty("log4j.appender.R", "org.apache.log4j.RollingFileAppender");
  properties.setProperty("log4j.appender.R.File", "c:/mo.log");//the output file ,you can read from other config file
  properties.setProperty("log4j.appender.R.MaxFileSize", "1024");//去掉K ,只忍数字
  properties.setProperty("log4j.appender.R.MaxBackupIndex", "2");
  properties.setProperty("log4j.appender.R.layout", "org.apache.log4j.PatternLayout");
  properties.setProperty("log4j.appender.R.layout.ConversionPattern", "%p %t %c - %m%n");
  PropertyConfigurator.configure( properties );
  logger.debug("Entering application.");
  logger.info("Exiting application.");
  }
}
阅读(926) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~