春风博客

春天里,百花香...

导航

<2008年8月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
31123456

统计

公告

MAIL: junglesong@gmail.com
MSN: junglesong_5@hotmail.com

Locations of visitors to this page

常用链接

留言簿(11)

随笔分类(224)

随笔档案(126)

个人软件下载

我的其它博客

我的邻居们

最新随笔

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜

log4j在桌面程序和Web程序中的配置

注意:本文说到的log4j版本为1.2.15,使用的配置文件是属性文件(properties),如果这些与您的环境不符则请快速离开,以免耽误你的宝贵时间。

 

一.log4j在桌面程序中的配置

这个相对简单了,它的步骤就这样两步:

1)将log4j-1.2.15.jar引入到工程的lib目录中.
2)确保配置文件log4j.properties在程序的代码目录(如src目录,cfg目录)中,它编译后应该位于类路径classes中.

 

log4j.properties示例(可以拷贝使用):

  1. log4j.rootLogger=debug, stdout, R
  2. log4j.appender.stdout=org.apache.log4j.ConsoleAppender
  3. log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
  4. # Pattern to output the caller's file name and line number.
  5. log4j.appender.stdout.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n
  6. log4j.appender.R=org.apache.log4j.RollingFileAppender
  7. log4j.appender.R.File=输出log文件.log
  8. log4j.appender.R.MaxFileSize=1000KB
  9. # Keep one backup file
  10. log4j.appender.R.MaxBackupIndex=1
  11. log4j.appender.R.layout=org.apache.log4j.PatternLayout
  12. log4j.appender.R.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n

要对这个文件进行修改的话,基本上改两个地方就行了。

一个是输出文件名称,一个是输出等级设置。

1) 输出文件名称:
log4j.appender.R.File=输出log文件.log

 

2) 输出等级:
log4j.rootLogger=debug, stdout, R
Debug说明只要是logger.debug以上的都记录

 

配置到这里,就结束了。下面请看如何在程序中使用log4j。

 

二.log4j的使用

1) 首先,那个类要用到log4j记录日志,就应该为类添加一个静态的成员变量loogger,示例如下:

  1. public class Main{
  2.  private static Logger logger = Logger.getLogger(Main.class);
  3.  public static void main(String[] args){
  4.   logger.info("成员管理程序启动");
  5.   new MemberMngCtrl();  
  6.  }
  7. }

2) 其次,你就可以使用logger.debug ,logger.info, logger.warn, logger.error, logger.fatal等函数(记录等级依次提高)来记录日志内容了,确实是很简单方便的。
 

三.log4j在Web工程中的配置

与桌面程序一样的是,properties文件也需要能被编译到classes(WEB-INF/classes/)中,建议将属性文件放在特定的目录下并设置为源码目录,另外放在WEB-INF\src下也不错。

这一步比前面稍多的是需要配置一个初始化log4j的initServlet,就是在一开始就启动的Servlet,代码如下:

  1. public class Log4jInit extends HttpServlet {
  2.     private static final long serialVersionUID = -4499302208753939187L;
  3.     static Logger logger = Logger.getLogger(Log4jInit.class);
  4.      public void init(ServletConfig config) throws ServletException {
  5.          String prefix = config.getServletContext().getRealPath("/");
  6.          String file = config.getInitParameter("log4j");
  7.          String filePath = prefix + file;
  8.          Properties props = new Properties();
  9.          
  10.          try {
  11.              FileInputStream istream = new FileInputStream(filePath);
  12.              props.load(istream);
  13.              istream.close();
  14.              String logFile = prefix + props.getProperty("log4j.appender.R.File");//设置路径
  15.              props.setProperty("log4j.appender.R.File",logFile);
  16.              
  17.              // 装入log4j配置信息
  18.              PropertyConfigurator.configure(props);
  19.          } catch (IOException e) {
  20.              System.out.println("Could not read configuration file [" + filePath + "].");
  21.              System.out.println("Ignoring configuration file [" + filePath + "].");
  22.              return;
  23.          }
  24.      }
  25. }

然后,在Web.xml中配置一下,让它在一开始启动就可以了。

  1.     <!-- InitServlet -->
  2.     <servlet>
  3.          <servlet-name>log4j-init</servlet-name>
  4.          <servlet-class>
  5.             com.sitinspring.action.Log4jInit
  6.          </servlet-class>
  7.          <init-param>
  8.            <param-name>log4j</param-name>
  9.            <param-value>WEB-INF/classes/log4j.properties</param-value>
  10.          </init-param>
  11.          <load-on-startup>1</load-on-startup>
  12.     </servlet>

全文完。

posted on 2008-08-08 12:57 sitinspring 阅读(1325) 评论(1)  编辑  收藏 所属分类: 开源包使用

评论

# re: log4j在桌面程序和Web程序中的配置 2008-09-01 13:41 隔叶黄莺

你得在后台管理中把相应样式加进去,代码才能着上色。  回复  更多评论   


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


网站导航:
 
sitinspring(http://www.blogjava.net)原创,转载请注明出处.