日期:2014-05-18  浏览次数:20650 次

log4j的一个小问题
初学log4j,参考了网上很多代码。在过滤器中写输入到数据库的userName的时候,如果不加注释的两句,在数据库userName字段中就没有值(加上了就有),但是网上很多代码说只需要在要输出日志的函数中加这两句话就可以,没有在过滤器中加。在下不才,想问问这两句话应该放在哪里,原因是什么呢~谢谢!
public class LogFilter implements Filter{  
    //private final Log log = LogFactory.getLog(getClass());<====================(1)
      ...
      public void doFilter(ServletRequest request, ServletResponse response,  
               FilterChain chain) throws IOExceptionServletException {  

            HttpServletRequest req=(HttpServletRequest)request;  
            HttpSession session= req.getSession();  
            String user=(String) session.getAttribute("user");  
            MDC.put("userName",user); 
          
            //log.info("");  <==========================(2)
  
            chain.doFilter(request, response);  
      }  
      ...
log4j

------解决方案--------------------
一般log就是监控一个方法输入的值,
还监控返回的值。
你这两句就是获取log对象并记录信息。。
我想网上说的应该是把记录log对象给封装成一个LogHelper类吧。直接调用的意思吧。