月亮弯弯

不努力,你离要饭只有3天
随笔 - 0, 文章 - 2, 评论 - 0, 引用 - 0
数据加载中……

搭建基于 Java 的 WEB 应用程序(一)

Log4j的配置

   最近在公司一直是做一些比较小型的 WEB 应用程序。例如接收错误报告的服务器端,OA 内部的 MIS 系统。所以把之前做过的东西记录一下,当是学习经验也好,个人备忘录也好。

   先说一下这次的开发环境:JDK 5.0,MySQL 5.0,Tomcat 5.0.X。

   IDE 方面:用的 Java Editer 是 JBuilder 2005,可能现在更多的人都喜欢用 Eclipse,因为它的插件机制非常的灵活。可凡事都是先入为主,用 JBuilder 这么久了,总是觉得用 JBuilder 写代码才有安全感。MySQL 方面用的是 MySQL Front 3.2,是一个功能强大而且非常灵活的图形化工具。好了,现在可以开始了。

   首先配置 Log4j。Log4j是 Apache 的一个开源项目。它不但可以用在 Java 的 WEB 应用程序中,现在已经被改进为能用于多个范畴内跟踪项目的最好的日志工具。有次以为整个项目很小,所以就没有用 Log4j。结果项目是要部署在 Linux 上面的,由于在 Debian 上面运行 Tomcat ,控制台是看不到信息的,所以部署出错之后 Debug 就很麻烦。受了教训之后,之后每次做基于 Java 的 WEB 应用程序时,第一个就要先把 Log4j 配置好。

   Log4j 可以从 Apache 的官方主页下载,目前最新版本为 1.2.13。下载地址为 :http://logging.apache.org/site/binindex.cgi

   配置 Log4j,主要配置 3 个文件。首先是 Log4j 的配置文件:Log4j.properties。在这里就不详细说整个文件的详细配置,参考下面的代码,就能迅速的完成 Log4j 的配置。

# 1  定义了两个输出端

log4j.rootLogger 
=  debug ,  A1 ,  A2

#
2  定义A1输出到控制器

log4j.appender.A1 
=  org.apache.log4j.ConsoleAppender
#
3  定义A1的布局模式为PatternLayout

log4j.appender.A1.layout 
=  org.apache.log4j.PatternLayout
#
4  定义A1的输出格式

log4j.appender.A1.layout.ConversionPattern 
=  %-4r  [ %t ]  %-5p %c - %m%n

#
5  定义A2输出到文件
log4j.appender.A2 
=  org.apache.log4j.RollingFileAppender
#
6  定义A2要输出到哪一个文件
# 默认输出路径为 %tomcat_home%\bin 目录下
# 这里改成 %tomcat_home%\logs 目录
log4j.appender.A2.File 
= ../logs/oamis.lkog
#
7  定义A2的输出文件的最大长度
log4j.appender.A2.MaxFileSize 
=  1000KB
#
8  定义A2的备份文件数
log4j.appender.A2.MaxBackupIndex 
=   1
#
9  定义A2的布局模式为PatternLayout
log4j.appender.A2.layout 
=  org.apache.log4j.PatternLayout
#
10  定义A2的输出格式
#log4j.appender.A2.layout.ConversionPattern 
=  %d{yyyy-MM-dd hh:mm:ss}:%p %t %c - %m%n
log4j.appender.A2.layout.ConversionPattern 
=  %t  :%-5p  :%c  :%m%n

   Log4j.propertis 文件一般放在 WEB-INF 目录下。以便于在 WEB 启动时就加载它。接下来就是定义一个 Servlet 来初始化 Log4j。比如定义一个叫 Log4jInit 的 Servlet 来初始化 Log4j。

   


import  javax.servlet. * ;
import  javax.servlet.http. * ;
import  java.io. * ;
import  org.apache.log4j. * ;

public   class  Log4jInit  extends  HttpServlet  {

    
// Initialize global variables
     public   void  init()  throws  ServletException  {
        String prefix 
=  getServletContext().getRealPath( " / " );
        System.out.println(
" ..Log4j Starting! " );
        System.out.println(prefix 
+ " WEB-INF/Log4j.properties " );
        org.apache.log4j.PropertyConfigurator.configure(prefix 
+
                
" WEB-INF/Log4j.properties " );
        System.out.println(
" ---------------------------------- " );
    }


    
// Process the HTTP Get request
     public   void  doGet(HttpServletRequest request, HttpServletResponse response)  throws
            ServletException, IOException 
{
    }


    
// Clean up resources
     public   void  destroy()  {
    }

}


   这个 Servlet 主要是完成对 Log4j 的初始化。要使这个 Servlet 在 WEB 启动时就加载,还需对 web.xml 做如下配置:

< servlet >
    
< servlet-name > log4jinit </ servlet-name >
    
< servlet-class > com.kingsoft.servlets.Log4jInit </ servlet-class >
    
< load-on-startup > 1 </ load-on-startup >
  
</ servlet >

加上一句 <load-on-startup>1</load-on-startup>,表示在 WEB 启动时,就先加载这个 Servlet。



下面测试一下:

public   class  TestLog4j  {
    
private   static  org.apache.log4j.Category log  =  org.apache.log4j.Category.
            getInstance(TestLog4j.
class );
    
public  TestLog4j()  {
        log.info(
" Init Method " );
    }

    
public   static   void  main(String[] args)  {
        log.info(
" todo-:) " );
        TestLog4j test 
=   new  TestLog4j();
    }

}

Log4j 就配置好了。以后在每个类里面使用,只要定义一个 Category 对象就 OK了。只要 info、debug、error等方法的使用,请参考 Log4j 的 API Document。


下一节主要写 Tomcat 的数据库连接池。

posted on 2006-07-17 11:14 小悦 阅读(89) 评论(0)  编辑 收藏 引用 所属分类: Java 技术频道

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