1.首先到网站上下载logging-log4j-1.2.12.zip,解压到本地目录,然后把logging-log4j-1.2.12\dist\lib\log4j-1.2.12.jar复制到工程目录\WEB-INF\lib\log4j-1.2.12.jar下.
2.写资源文件mylog4j.properties
#(一) 配置rootLogger,参数一:指定日志级别为DEBUG,参数二、三:指定两个Appender输出组件,组件名分别为console,file
log4j.rootLogger=INFO,console,file
#-------日志级别(OFF,FATAL,ERROR,WARN,INFO,DEBUG,TRACE,ALL)依次由高到低
#(二) 配置Appender组件(输出目的地组件)
#配置第一个输出目的地为org.apache.log4j.ConsoleAppender(控制台)的Appender组件
log4j.appender.console=org.apache.log4j.ConsoleAppender
#配置第二个输出目的地为org.apache.log4j.FileAppender(文件)的Appender组件
log4j.appender.file=org.apache.log4j.FileAppender
#信息将输出到文件mylog.txt里
log4j.appender.file.File=mylog.txt
#--------Appender组件输出目的地有4种:
#----------------------------org.ajpache.log4j.ConsoleAppender(控制台)
#----------------------------org.ajpache.log4j.FileAppender(文件)
#----------------------------org.ajpache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
#----------------------------org.ajpache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
#(三) 配置Layout组件(输出格式组件)
#配置console组件的输出格式为org.apache.log4j.SimpleLayout(包含日志消息的级别和信息字符串)
log4j.appender.console.layout=org.apache.log4j.SimpleLayout
#配置file组件的输出格式为org.apache.log4j.PatternLayout(%格式,可以灵活的指定布局格式)
log4j.appender.file.layout=org.apache.log4j.PatternLayout
#指定输出内容
log4j.appender.file.layout.ConversionPattern=%t %p - %m%n
#---------Layout组件输出格式有4种:
#----------------------------org.ajpache.log4j.HTMLLayout(以HTML表格形式布局)
#----------------------------org.ajpache.log4j.PatternLayout(可以灵活地指定布局模式)
#----------------------------org.ajpache.log4j.SimpleLayout(包括日志消息的级别和信息字符串)
#----------------------------org.ajpache.log4j.TTCCLayout(包含日志产生的时间、线程和类别等信息)
#---------PatternLayout布局格式:
#----------------------------%r (自程序开始后消耗的毫秒数)
#----------------------------%t (表示日志记录请求生成的线程)
#----------------------------%p (表示日志语句的优先级别)
#----------------------------%r (与日志请求相关的类别名称)
#----------------------------%c (日志消息所在的类名)
#----------------------------%m%n (表示日志消息的内容)
3.编写加载资源文件类
package com.li.tool;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import org.apache.log4j.PropertyConfigurator;
public class MyLog4J extends HttpServlet ...{
private static final String CONTENT_TYPE = "text/html; charset=GBK";
//Initialize global variables
public void init() throws ServletException ...{
String realpath = this.getServletContext().getRealPath("/");
String file = this.getInitParameter("mylog4j-config-file");
System.out.println(realpath+file);
PropertyConfigurator.configure(realpath + file);
}
//Process the HTTP Get request
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException ...{
}
//Process the HTTP Post request
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException ...{
}
//Clean up resources
public void destroy() ...{
super.destroy();
}
}
4.注册Log4J到web.xml
<web-app>
...
<servlet>
<servlet-name>mylog4j</servlet-name>
<servlet-class>com.li.tool.MyLog4J</servlet-class>
<init-param>
<param-name>mylog4j-config-file</param-name>
<param-value>WEB-INF/classes/mylog4j.properties</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
...
</web-app>
5.在类里使用
public class Test...{
private Logger logger=Logger.getLogger(this.getClass());
public static void main(String args[])...{
logger.debug("debug级别信息");
logger.info("info级别信息");
logger.warn("warn级别信息");
logger.error("error级别信息");
}
}
2.写资源文件mylog4j.properties
#(一) 配置rootLogger,参数一:指定日志级别为DEBUG,参数二、三:指定两个Appender输出组件,组件名分别为console,file
log4j.rootLogger=INFO,console,file
#-------日志级别(OFF,FATAL,ERROR,WARN,INFO,DEBUG,TRACE,ALL)依次由高到低
#(二) 配置Appender组件(输出目的地组件)
#配置第一个输出目的地为org.apache.log4j.ConsoleAppender(控制台)的Appender组件
log4j.appender.console=org.apache.log4j.ConsoleAppender
#配置第二个输出目的地为org.apache.log4j.FileAppender(文件)的Appender组件
log4j.appender.file=org.apache.log4j.FileAppender
#信息将输出到文件mylog.txt里
log4j.appender.file.File=mylog.txt
#--------Appender组件输出目的地有4种:
#----------------------------org.ajpache.log4j.ConsoleAppender(控制台)
#----------------------------org.ajpache.log4j.FileAppender(文件)
#----------------------------org.ajpache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
#----------------------------org.ajpache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
#(三) 配置Layout组件(输出格式组件)
#配置console组件的输出格式为org.apache.log4j.SimpleLayout(包含日志消息的级别和信息字符串)
log4j.appender.console.layout=org.apache.log4j.SimpleLayout
#配置file组件的输出格式为org.apache.log4j.PatternLayout(%格式,可以灵活的指定布局格式)
log4j.appender.file.layout=org.apache.log4j.PatternLayout
#指定输出内容
log4j.appender.file.layout.ConversionPattern=%t %p - %m%n
#---------Layout组件输出格式有4种:
#----------------------------org.ajpache.log4j.HTMLLayout(以HTML表格形式布局)
#----------------------------org.ajpache.log4j.PatternLayout(可以灵活地指定布局模式)
#----------------------------org.ajpache.log4j.SimpleLayout(包括日志消息的级别和信息字符串)
#----------------------------org.ajpache.log4j.TTCCLayout(包含日志产生的时间、线程和类别等信息)
#---------PatternLayout布局格式:
#----------------------------%r (自程序开始后消耗的毫秒数)
#----------------------------%t (表示日志记录请求生成的线程)
#----------------------------%p (表示日志语句的优先级别)
#----------------------------%r (与日志请求相关的类别名称)
#----------------------------%c (日志消息所在的类名)
#----------------------------%m%n (表示日志消息的内容)
3.编写加载资源文件类
package com.li.tool;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import org.apache.log4j.PropertyConfigurator;
public class MyLog4J extends HttpServlet ...{
private static final String CONTENT_TYPE = "text/html; charset=GBK";
//Initialize global variables
public void init() throws ServletException ...{
String realpath = this.getServletContext().getRealPath("/");
String file = this.getInitParameter("mylog4j-config-file");
System.out.println(realpath+file);
PropertyConfigurator.configure(realpath + file);
}
//Process the HTTP Get request
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException ...{
}
//Process the HTTP Post request
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException ...{
}
//Clean up resources
public void destroy() ...{
super.destroy();
}
}
4.注册Log4J到web.xml
<web-app>
...
<servlet>
<servlet-name>mylog4j</servlet-name>
<servlet-class>com.li.tool.MyLog4J</servlet-class>
<init-param>
<param-name>mylog4j-config-file</param-name>
<param-value>WEB-INF/classes/mylog4j.properties</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
...
</web-app>
5.在类里使用
public class Test...{
private Logger logger=Logger.getLogger(this.getClass());
public static void main(String args[])...{
logger.debug("debug级别信息");
logger.info("info级别信息");
logger.warn("warn级别信息");
logger.error("error级别信息");
}
}