spring中log4j使用
发布日期:2021-07-01 05:40:36 浏览次数:2 分类:技术文章

本文共 2405 字,大约阅读时间需要 8 分钟。

在Web应用中一般使用一个专门的Servlet来完成Log4J的配置,并保证在web.xml的配置中,这个Servlet位于其它Servlet之前,以便在Servlet和jsp中调用。下面是这个servlet,代码如下:
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);
          }
     }
}
此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=log4j.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
 这个配置文件指定了两个输出源A1和R。前者把日志信息输出到控制台,后者是一个轮转日志文件。最大的文件是100KB,当一个日志文件达到最大尺寸时,Log4J会自动把example.log重命名为example.log.1,然后重建一个新的 example.log文件,依次轮转。 
 测试文件test.jsp:
<%@ page contentType="text/html; charset=GB2312" %>
<%@ page import="org.apache.log4j.*" %>
<%      
    Logger logger = Logger.getLogger("test.jsp");
    logger.debug("befor test");
%>
<h1>This is login test</h1>
<%  logger.info("after test");%>
PatternLayout的格式
%r    自程序开始后消耗的毫秒数
%t    表示日志记录请求生成的线程
%p    表示日志语句的优先级别
%c    日志信息所在的类名
%m%n    表示日志信息的内容
%r    自应用启动到输出该log信息耗费的毫秒数
%d    日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921
%l    日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。
Spring 中log4j配置
<context-param>
        <param-name>log4jConfigLocation</param-name>
        <param-value>WEB-INF/log4j.properties</param-value>
    </context-param>
    <context-param>
        <param-name>log4jRefreshInterval</param-name>
        <param-value>60000</param-value>
    </context-param>
    <listener>
        <listener-class>
            org.springframework.web.util.Log4jConfigListener
        </listener-class>
    </listener>
文件保存的地方
log4j.appender.R.File=${webapp.root}/logs/chengchuang.log

转载地址:https://oscar.blog.csdn.net/article/details/1856200 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:数据库建表知识
下一篇:linux基本知识

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年04月24日 00时46分38秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章