在web应用中使用日志工具log4J
2008-05-14 21:15
447 查看
Log4J是Jakarta下的一个开源代码的子项目,用Log4J,我们可以使用定制的格式,把调试信 息和日志信息输出到一个或多个需要的地方。 在Web应用中一般使用一个专门的Servlet来完成Log4J的配置,并保证在web.xml的配置中, 这个Servlet位于其它Servlet之前,以便在Servlet和jsp中调用。下面是这个servlet,代码如下:
此servlet在web.xml中配置:
</web-app>
...........
servlet>
<servlet-name>log4j-init</servlet-name>
<servlet-class>example.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的属性文件:
log4j.rootLogger=debug, 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=cwblog4j.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
package example;
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(file != null) {
PropertyConfigurator.configure(prefix+file);
}
}
public void doGet(HttpServletRequest req, HttpServletResponse res)
{ }
}
这个配置文件指定了两个输出源A1和R。前者把日志信息输出到控制台,后者是一个轮转日志文件。最大的文件是100KB,当一个日志文件达到最大 尺寸时,Log4J会自动把example.log重命名为example.log.1,然后重建一个新的example.log文件,依次轮转。
测试文件:
<%@ page contentType="text/html; charset=GB2312" %>
<%@ page import="org.apache.log4j.*" %>
<%
Logger logger = Logger.getLogger("test.jsp");
logger.debug("befor say hi");
%>
<h1> Hi</h1>
<% logger.info("after say hi");%>
在服务器上的$TOMCAT_HOME/log4j.log文件中看到如下的信息:
DEBUG Thread-5 testlog4j.jsp - befor say hi
INFO Thread-5 testlog4j.jsp - after say hi
在$TOMCAT_HOME/logs/stdout.log文件的最后有下面的输出。
信息: Server startup in 5678 ms
2004-07-07 09:54:05 [testlog4j.jsp]-[DEBUG] befor say hi
2004-07-07 09:54:05 [testlog4j.jsp]-[INFO] after say hi
此servlet在web.xml中配置:
</web-app>
...........
servlet>
<servlet-name>log4j-init</servlet-name>
<servlet-class>example.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的属性文件:
log4j.rootLogger=debug, 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=cwblog4j.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
package example;
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(file != null) {
PropertyConfigurator.configure(prefix+file);
}
}
public void doGet(HttpServletRequest req, HttpServletResponse res)
{ }
}
这个配置文件指定了两个输出源A1和R。前者把日志信息输出到控制台,后者是一个轮转日志文件。最大的文件是100KB,当一个日志文件达到最大 尺寸时,Log4J会自动把example.log重命名为example.log.1,然后重建一个新的example.log文件,依次轮转。
测试文件:
<%@ page contentType="text/html; charset=GB2312" %>
<%@ page import="org.apache.log4j.*" %>
<%
Logger logger = Logger.getLogger("test.jsp");
logger.debug("befor say hi");
%>
<h1> Hi</h1>
<% logger.info("after say hi");%>
在服务器上的$TOMCAT_HOME/log4j.log文件中看到如下的信息:
DEBUG Thread-5 testlog4j.jsp - befor say hi
INFO Thread-5 testlog4j.jsp - after say hi
在$TOMCAT_HOME/logs/stdout.log文件的最后有下面的输出。
信息: Server startup in 5678 ms
2004-07-07 09:54:05 [testlog4j.jsp]-[DEBUG] befor say hi
2004-07-07 09:54:05 [testlog4j.jsp]-[INFO] after say hi
相关文章推荐
- 在java应用中使用log4j日志工具
- Apache通用日志工具commons-logging和Log4j使用总结
- 在web应用中使用日志
- JAVA中使用Log4j日志工具
- 使用高效的日志工具log4j
- Apache通用日志工具commons-logging和Log4j使用总结
- Apache通用日志工具commons-logging和Log4j使用总结
- 使用Log4j为项目配置日志输出应用详细总结及示例演示.
- 在web应用中使用Log4j 2
- 在WEB项目中使用log4j日志管理
- Java 标准日志工具 Log4j 的使用(附源代码)
- Web框架梳理:第三章:Mybatis入门、Mybatis代理开发、log4j:日志管理工具
- 【原创】python web应用性能测试出现的问题以及使用的工具
- 使用高效的日志工具—Log4J
- 跟王老师学异常(八):开源日志记录工具log4j的使用案例
- 使用高效的日志工具—Log4J
- 在web应用中使用日志
- java Web应用配置log4j日志记录
- Apache通用日志工具commons-logging和Log4j使用总结
- Java 标准日志工具 Log4j 的使用(附源代码)