1.
首先确定要使用log4j,然后下载log4j的jar文件,这里用的是log4j-1.2.9.jar,并且将jar文件放到
项目的lib目录下,这个很重要,
2.
新建log4j的配置文件log4j.properties,放到/WEB-INF/目录下
3.
配置log4j.properties文件,详细的配置信息和方法可以在google中找,不再赘述
这里是将日志输出到控制台和文件,配置如下:
log4j.rootLogger=INFO,toConsole,toFile
log4j.appender.toConsole=org.apache.log4j.ConsoleAppender
log4j.appender.toConsole.Threshold=DEBUG
log4j.appender.toConsole.Target=System.out
log4j.appender.toConsole.layout=org.apache.log4j.PatternLayout
log4j.appender.toConsole.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss}]%n[%l] [%p]%n%m%n%n
#[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
#[%d{yyyy-MM-dd HH:mm:ss}]%n[%l] [%p]%n%m%n%n
log4j.appender.toFile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.toFile.File=D://Tomcat 5.0//webapps//MyExample//logs//file.log
log4j.appender.toFile.MaxFileSize=100kb
log4j.appender.toFile.MaxBackupIndex=1
log4j.appender.toFile.layout=org.apache.log4j.PatternLayout
log4j.appender.toFile.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss}]%n[%l] [%p]%n%m%n%n
#%p %t %c - %m%n
4.
配置web.xml文件
在web.xml文件中加入如下代码:
<servlet>
<servlet-name>log4j</servlet-name>
<servlet-class>com.servletLog4j.InitLog4jServlet</servlet-class>
<init-param>
<param-name>log4jFile</param-name>
<param-value>/WEB-INF/log4j.properties</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
在配置web.xml文件的时候,要注意的是不要写成<servlet-mapping/>的方式如:
<servlet>
<servlet-name>log4j</servlet-name>
<servlet-class>com.servletLog4j.InitLog4jServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>log4j</servlet-name>
<url-pattern>/WEB-INF/log4j.properties</url-pattern>
</servlet-mapping>
这样后面写的servlet是找不到log4j.properties文件的,我在这里绕了好久
5.
写启动log4j的servlet文件
可以去掉其中的输出信息
public class InitLog4jServlet extends HttpServlet{
private static final long serialVersionUID = -1815935507494861825L;
public void init(){
String path= getServletContext().getRealPath("/");
String pre= getServletContext().getRealPath("");
String file= this.getInitParameter("log4jFile");
// System.setProperty("webapphome",pre);
System.out.println(path);
System.out.println(pre);
if(file != null){
PropertyConfigurator.configure(path+file);
}
System.out.println(file);
}
public void doGet(HttpServletRequest request, HttpServletResponse response){
}
public void doPost(HttpServletRequest request, HttpServletResponse response){
}
public void destroy(){
}
}
6.
使用log4j
经过上面的操作后就可以用它了
private static Logger log= Logger.getLogger(ExampleAction.class);
public ActionForward execute(//...略){
log.info("you can output something here.");
log.error("here too");
log.debug("");
log.warn("");
}
7.
注意的地方
在输出信息的地方最好是使用
if(log.isDebugEnabled()){
log.debug("...");
}
因为直接输出log.debug("...")会影响系统性能的
如果是在main方法中输出日志,可以如下使用:
PropertyConfigurator.configure("F://workspace//MyExample//WebRoot//WEB-INF//log4j.properties");//找到log4j的配置文件
Logger log= Logger.getLogger("TestConnect");
log.debug("bug");
log.error("ce shi");
log.info("test");
不用配置什么servlet,web.xml