日期:2014-05-17  浏览次数:20793 次

log4j级别设置问题
配置文件设置为WARN的时候:

Java code
public String create()throws Exception
    {
        try {
            logger.warn("添加企业信息");
            enterpriseServiceDAO.Create(enterprise);
            logger.info("添加企业信息11");
        } catch (Exception e) {
            // TODO Auto-generated catch block
                            e.printStackTrace();
            logger.error("企业信息添加失败!");
            return "input";
        }
        return "create";
    } 


1.执行create正常时: 没有任何数据写入数据库!
2.执行create出现异常,例如插入主键重复的值的时候。没有数据写入。

配置文件设置为INFO的时候:
重启服务器后:
但是记录出奇的多:89条。这些信息不想输出到页面!

1.执行create正常时: 新增记录10条 logger.warn("添加企业信息")可以输出 还有其他9条不想输出到页面的信息,但是logger.info("添加企业信息11");
 却输出不了。。

2.执行create出现异常,例如插入主键重复的值的时候。均写入数据库了。。但是,这个所有的 error warn info 都存入数据库了。显然不是我想要的。我想要的只是异常信息而已。

HTML code
log4j.rootLogger=INFO,db
log4j.appender.db=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.db.BufferSize=10
log4j.appender.db.URL=jdbc\:jtds\:sqlserver\://server\:1434/pcbsyn
log4j.appender.db.driver=net.sourceforge.jtds.jdbc.Driver
log4j.appender.db.user=sa
log4j.appender.db.password=711
log4j.appender.db.sql=insert into logInfo(userId,userName,lclass,lmethod,lTime,llevel,message) values ('%X{userId}','%X{userName}','%C','%M','%d{yyyy-MM-dd HH\:mm\:ss}','%p','%m')
log4j.appender.db.layout=org.apache.log4j.PatternLayout



现在只想记录比如:
①用户登陆、退出的信息,修改个人信息的信息,
②所有的CRUD信息。
目前想的是 所有的使用logger.warn 这个。这样INFO的信息就不显示了。因为我要做到页面上。,
页面上不可能显示出这么多的INFO信息啊。所以就设置为WARN了。貌似上面的WARN级别不起作用啊?




------解决方案--------------------
Log4j设置为低级别的时候本来就包含高级别的信息。

楼主可以用独立的文件,记录自己Action代码中想要记录的信息。