Log4J学习笔记(3)

我这儿有两个程序,一个是普通的java程序,实现了一个“九九表”;另一个是servlet。我这儿用的tomcat是4. 1.12 ,J2SE是1. 3.1 ,log4j的版本是1. 2.8 .

一、九九表。
环境设置:需要将log4j
- 1.2 . 8 .jar放入CLASSPATH变量中。
Hello.java文件的内容如下:


import  org.apache.log4j. * ; public   class  Hello {    static Logger logger = Logger.getLogger(Hello.class);    public static void main(String[] args) {    int i,j;//      BasicConfigurator.configure();      PropertyConfigurator.configure(args[0]);      logger.info("Entering application.");      for(i=1;i<10;i++){        logger.debug(""+i);          for (j=1;j<=i;j++){              logger.warn(""+j);              System.out.print(i*j);              System.out.print(" ");          }          System.out.println("");        }      logger.info("Exiting application.");      }

log4j的配置文件log4j.inf的内容如下:
log4j.rootLogger
=WARN, stdout, Rlog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayout# Pattern to output the caller's file name and line number.#log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n# Print the date in ISO 8601 formatlog4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p %c - %m%nlog4j.appender.R=org.apache.log4j.RollingFileAppenderlog4j.appender.R.File=example.loglog4j.appender.R.MaxFileSize=100KB# Keep one backup filelog4j.appender.R.MaxBackupIndex=1log4j.appender.R.layout=org.apache.log4j.PatternLayoutlog4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n# Print only messages of level WARN or above in the package com.foo.log4j.logger.com.foo=WARN

运行:
javac Hello.java
java Hello log4j.inf

结果会在屏幕上显示,并在example.log文件中记录。

二、servlet
环境设置:将log4j
-1.2.8.jar及servlet.jar放入环境变量CLASSPATH中,并且要将log4j-1.2.8复制到$TOMCAT_HOME/common/lib目录下。
假定,有一个布署到tomcat的应用叫myweb。
servlet程序Log4jInit.java的位置在$TOMCAT_HOME
/webapps/myweb/WEB-INF/classes/com/hedong/learning/log4j/目录下,内容如下:

package com.hedong.learning.log4j;import org.apache.log4j.*;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class Log4jInit extends HttpServlet {  public void init() {        String prefix =  getServletContext().getRealPath("/");        String file = getInitParameter("log4j");        // if the log4j-init-file is not set, then no point in trying        System.out.println("................log4j start");        if(file != null) {          PropertyConfigurator.configure(prefix+file);        }  }public void doGet(HttpServletRequest req, HttpServletResponse res) {  }}

在Log4jInit.java所在目录下编译它:
javac Log4jInit.java

myweb的设置文件web.xml在$TOMCAT_HOME
/webapps/myweb/WEB-INF/目录下,增加如下红色部分。
</web-app>  ...........  <servlet>    <servlet-name>log4j-init</servlet-name>    <servlet-class>com.hedong.learning.log4j.Log4jInit</servlet-class>    <init-param>      <param-name>log4j</param-name>      <param-value>WEB-INF/log4j.properties</param-value>    </init-param>    <load-on-startup>1</load-on-startup>  </servlet></web-app>

同时,在这个目录下建一个文件名叫log4j.properties,内容如下:
log4j.rootLogger
=INFO, A1 , Rlog4j.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.RollingFileAppenderlog4j.appender.R.File=$TOMCAT_HOME/webapps/dbweb/logs/log4j.log<----将$TOMCAT_HOME换成tomcat的安装目录log4j.appender.R.MaxFileSize=100KBlog4j.appender.R.MaxBackupIndex=1log4j.appender.R.layout=org.apache.log4j.PatternLayoutlog4j.appender.R.layout.ConversionPattern=%%%- %m%n

记住,别忘了创建目录$TOMCAT_HOME
/webapps/dbweb/logs/,如果它不存在的话。
创建目录$TOMCAT_HOME
/webapps/dbweb/test/,然后在这个目录下新建一个文件test.jsp,内容如下:
<%@ page contentType="text/html; charset=GB2312" %><%@ page import="org.apache.log4j.*" %><%       Logger logger = Logger.getLogger("test.jsp");       logger.info("befor say hi");%><h1> Hi</h1><%        logger.info("after say hi");%>

然后,重新启动tomcat,通过浏览器访问这个jsp页面,如http:
//yourdomain.com:8080/myweb/test/test.jsp,如果一切正常,会看到一个大大的HI。然后,在服务器上的$TOMCAT_HOME/webapps/dbweb/logs/log4j.log文件中看到如下的信息:
INFO HttpProcessor[8080][4] test.jsp - befor say hi
INFO HttpProcessor[
8080][4] test.jsp - after say hi
。在默认的情况下,tomcat的屏幕输出被重定向到$TOMCAT_HOME
/logs/catalina.out文件中,在文件的最后也应看到上述的输出。


Posted by Hilton at August 
272003 10:59 PM 
 

你可能感兴趣的:(Log4J学习笔记(3))