在web project中使用log4j
下面我们以在tomcat中示范怎么配置和使用log4j
环境设置:用过tomcat的都知道,应该把log4j.jar文件拷贝到%TOMCAT_HOME%\common\lib中。
编辑servlet:
 1 None.gif package  my.scwcd;
 2 None.gif
 3 None.gif
 4 None.gif import  javax.servlet.ServletException;
 5 None.gif import  javax.servlet.http.HttpServlet;
 6 None.gif
 7 None.gif import  org.apache.log4j.PropertyConfigurator;
 8 None.gif
 9 ExpandedBlockStart.gifContractedBlock.gif public   class  Log4jInit  extends  HttpServlet  dot.gif {
10InBlock.gif
11ExpandedSubBlockStart.gifContractedSubBlock.gif public Log4jInit() dot.gif{
12InBlock.gif  super();
13ExpandedSubBlockEnd.gif }

14InBlock.gif
15ExpandedSubBlockStart.gifContractedSubBlock.gif public void destroy() dot.gif{
16InBlock.gif  super.destroy(); // Just puts "destroy" string in log
17ExpandedSubBlockEnd.gif }

18InBlock.gif
19ExpandedSubBlockStart.gifContractedSubBlock.gif public void init() throws ServletException dot.gif{
20InBlock.gif  String path = getServletContext().getRealPath("/");
21InBlock.gif  
22InBlock.gif  String file = getInitParameter("log4j");
23ExpandedSubBlockStart.gifContractedSubBlock.gif  if(file != null)dot.gif{
24InBlock.gif   PropertyConfigurator.configure(path+file);
25ExpandedSubBlockEnd.gif  }

26InBlock.gif  
27ExpandedSubBlockEnd.gif }

28InBlock.gif
29ExpandedBlockEnd.gif}

30 None.gif
31 None.gif
并在web.xml中加入如下配置:
 1None.gif  <servlet>
 2None.gif    <servlet-name>Log4jInit</servlet-name>
 3None.gif    <servlet-class>my.scwcd.Log4jInit</servlet-class>
 4None.gif    <init-param>
 5None.gif     <param-name>log4j</param-name>
 6None.gif     <param-value>WEB-INF\log4j.properties</param-value>
 7None.gif    </init-param>
 8None.gif    <load-on-startup>1</load-on-startup>
 9None.gif  </servlet>
10None.gif
注意上面<param-value>中的"\"在linux要写成"/"。
还有加上log4j.properties文件在WEB-INF目录下
log4j.rootLogger=INFO, A1 , R
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=log4j.log
log4j.appender.R.MaxFileSize=100KB
log4j.appender.R.MaxBackupIndex=1
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
下面写了两个测试的程序:
servlet Test.java中:
1None.gif   public   void  doGet(HttpServletRequest request, HttpServletResponse response)
 2 ExpandedBlockStart.gifContractedBlock.gif    throws  ServletException, IOException  dot.gif {
 3InBlock.gif
 4InBlock.gif  response.setContentType("text/html");
 5InBlock.gif  PrintWriter out = response.getWriter();
 6InBlock.gif  Logger logger = Logger.getLogger(Test.class);
 7InBlock.gif  logger.info("Test use Logging for Servlet");
 8InBlock.gif  out.println("<h1>Success<h1>");
 9InBlock.gif  out.flush();
10InBlock.gif  out.close();
11ExpandedBlockEnd.gif }

12 None.gif
13
JSP temp.jsp中:
1None.gif   <%
2None.gif    response.setContentType("text/html");
3None.gif  Logger logger = Logger.getLogger("temp.jsp");
4None.gif  logger.info("Test use Logging for JSP");
5None.gif  out.println("<h1>Success<h1>");
6None.gif   %>
7None.gif
这样在%TOMCAT_HOME%\bin目录下会产生log4j.log的文件,这就是日志文件。