当前位置: 代码迷 >> Java Web开发 >> log4j级别设置有关问题
  详细解决方案

log4j级别设置有关问题

热度:182   发布时间:2016-04-17 00:49:11.0
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,dblog4j.appender.db=org.apache.log4j.jdbc.JDBCAppenderlog4j.appender.db.BufferSize=10log4j.appender.db.URL=jdbc\:jtds\:sqlserver\://server\:1434/pcbsynlog4j.appender.db.driver=net.sourceforge.jtds.jdbc.Driverlog4j.appender.db.user=salog4j.appender.db.password=711log4j.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代码中想要记录的信息。