log4j在servlet中的使用

话不多说了 我们先看下log4j的配置说明

#配置根Logger,其语法为:log4j.rootLogger = [ level ] , appenderName, appenderName, ...
#level 是日志记录的优先级
#appenderName就是指定日志信息输出到哪个地方。您可以同时指定多个输出目的地。

log4j.rootLogger=INFO,stdout,R

#Log4j提供的appender有以下几种:
#org.apache.log4j.ConsoleAppender(控制台),
#org.apache.log4j.FileAppender(文件),
#org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
#org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
#org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
log4j.appender.stdout=org.apache.log4j.ConsoleAppender

#其中log4j提供4种布局.
#org.apache.log4j.HTMLLayout(以HTML表格形式布局)
#org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
#org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
#org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息
log4j.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 format
#log4j.appender.stdout.layout.ConversionPattern==%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
#R 输出到文件 RollingFileAppender的扩展,可以提供一种日志的备份功能。
log4j.appender.R=org.apache.log4j.RollingFileAppender
#日志文件的名称
log4j.appender.R.File=example.log
#日志文件的大小
log4j.appender.R.MaxFileSize=100KB

# Keep one backup file
#保存一个备份文件
log4j.appender.R.MaxBackupIndex=1

log4j.appender.R.layout=org.apache.log4j.PatternLayout

log4j.appender.R.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n

# Print only messages of level WARN or above in the package com.foo.
log4j.logger.com.foo=INFO

用例:  Log4jTest.java文件

package com.change.log4j.example;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.Category;
import org.apache.log4j.PropertyConfigurator;

public class Log4jTest extends HttpServlet {
 private Category log = Category.getInstance(Log4jTest.class.getName());

 public void destroy() {
  super.destroy();
 }

 public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  log.debug(getClass().getName() + "doGet() is start");
  response.setContentType("text/html");
  PrintWriter out = response.getWriter();
  out
    .println("<!DOCTYPE HTML PUBLIC /"-//W3C//DTD HTML 4.01 Transitional//EN/">");
  out.println("<HTML>");
  out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");
  out.println("  <BODY>");
  out.print("    This is ");
  out.print(this.getClass());
  out.println(", using the GET method");
  out.println("  </BODY>");
  out.println("</HTML>");
  out.flush();
  out.close();
  log.debug(getClass().getName() + "doGet() is end");
 }
  public void init() throws ServletException {
  ServletContext sct = getServletContext();
  System.out.println("[log4j]:  the root path :" + sct.getRealPath("/"));
  System.out.println("[log4j]:  InitServlet init start.....");
  //get log4j.properties path
  PropertyConfigurator.configure(sct.getRealPath("/")
    + getServletConfig().getInitParameter("log4j"));
  System.out.println("[log4j]:  InitServlet init over .");
 }
}

web.xml文件

<web-app >
  <servlet>
    <servlet-name>init</servlet-name>
    <servlet-class>com.change.log4j.example.Log4jTest</servlet-class>
     <init-param>
      <param-name>log4j</param-name>
      <param-value>WEB-INF/log4j.properties</param-value>
      <!--相对aplication的路径在ROOT/log4j.properties参照上面-->
     </init-param>
     <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
   <servlet-name>init</servlet-name>
   <url-pattern>/log4j</url-pattern>
  </servlet-mapping>
</web-app>

log4j.properties文件

log4j.rootCategory=DEBUG, A1, A2
log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A1.File=e:/eclipse/workspace/Log4jTest/WebRoot/output/log.txt   //我输出日志文件的path
log4j.appender.A1.DatePattern='.'yyyy-MM-dd
log4j.appender.A2=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=%d [%-5p] %l - %m%n
log4j.appender.A2.layout=org.apache.log4j.PatternLayout


 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值