站内搜索: 请输入搜索关键词

当前页面: 开发资料首页JSP 专题(急)关于log4j的基本问题,高手指点一下!

(急)关于log4j的基本问题,高手指点一下!

摘要: (急)关于log4j的基本问题,高手指点一下!


测试文件: test.jsp

文件内容:

<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*" errorPage="" %>
<%@ page import="org.apache.log4j.Logger"%>
<%@ page import="org.apache.log4j.Level"%>
<%@ page import="org.apache.log4j.SimpleLayout"%>
<%@ page import="org.apache.log4j.FileAppender"%>
<%
request.setCharacterEncoding("utf-8");
String path = request.getRealPath("/");
String svpath = path+"logs/test.log";
Logger log = Logger.getLogger("test");
SimpleLayout layout = new SimpleLayout();
FileAppender appender = appender = new FileAppender(layout,svpath,true);
log.setLevel((Level)Level.DEBUG);
log.setAdditivity(false);
log.addAppender(appender);
log.info("********************************");
log.info("log4j 配置文件测试!");
log.info(" ");
%>

我想要用追加模式,在浏览器输入: http://localhost:8080/jdsci/test.jsp 测试时
不会有错误,日志也产生了,问题是:

第1次刷新会产生一次记录.
第2次刷新会产生重复的两条记录.
第3次刷新会产生重复的三条记录.
...............

如下:
INFO - ********************************
INFO - log4j 文件测试!
INFO -
INFO - ********************************
INFO - ********************************
INFO - log4j 文件测试!
INFO - log4j 文件测试!
INFO -
INFO -
INFO - ********************************
INFO - ********************************
INFO - ********************************
INFO - log4j 文件测试!
INFO - log4j 文件测试!
INFO - log4j 文件测试!
INFO -
INFO -
INFO -
.....................

各位兄弟姐妹们请指点一下,急啊................



怎么没人回答一下啊,各位老大.............


up


错误在这一句:

log.addAppender(appender);

因为 Logger log = Logger.getLogger("test"); 实际上只有一个全局实例,所以每次得到
同一个实例,但你的appender是新的,所以logger被追加了几次,也就会显示几次日志

解决方法很简单:
方法(1),appender放到配置文件里,程序不管,logger自己会初始化
方法(2),在静态方法里追加appender


↑返回目录
前一篇: Session的超时设定为什么不准,急~~~~!
后一篇: JFreechart的问题?