log4j配置文件:
log4j.rootLogger=warn,db
log4j.appender.db=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.db.BufferSize=1
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 使用MDC 将 userId userName 存入
session.setAttribute("userId", userInfo.getLoginName().toString()
.trim());
session.setAttribute("userName", userInfo.getUserName().toString()
.trim());
MDC.put("userId",userInfo.getLoginName());
MDC.put("userName",userInfo.getUserName()); 现在怪异的是:userId、userName 有时候是有值的,有时候又是null值!
如图:
log4j.rootLogger=warn,db
log4j.appender.db=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.db.BufferSize=1
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 使用MDC 将 userId userName 存入
session.setAttribute("userId", userInfo.getLoginName().toString()
.trim());
session.setAttribute("userName", userInfo.getUserName().toString()
.trim());
MDC.put("userId",userInfo.getLoginName());
MDC.put("userName",userInfo.getUserName()); 现在怪异的是:userId、userName 有时候是有值的,有时候又是null值!
如图:
解决方案 »
- java 在控制台可以输出中文但是数据导了mysql数据库之后是乱码“????????”
- birt 如何设置 第几页/共几页
- hibernate.cfg.xml的问题关于数据库用户跟数据库的关系(急)
- 多线程还是单例?全局变量访问应该如何设计
- 求助~如何在socket不断的情况下,收发16进制的数据?
- JBoss的8080和Oracle的8080冲突怎么办
- 菜鸟问题:请问怎样将两个时间相减啊???
- 关于EJB的一个困惑: CMP or BMP or SessionBean ??
- 用Hibernate操作Oracle的序列式,hbm配置文件中这几个属性是什么意思
- 求救!!!为什么网络上的xml文件没有被修改啊?!
- sql语句,大家帮忙解释一下
- SSH2使用hibernate对Log4j日志文件写入数据库
session.setAttribute("userName", userInfo.getUserName().toString().trim());
MDC.put("userId",userInfo.getLoginName());
MDC.put("userName",userInfo.getUserName());
这些代码是只有一处,还是有多处
建议将涉及到同样操作的语句的地方都搂出来检查检查
logger.warn("查询企业信息成功!企业编号:"+enterprise.getEno());
action中 调用~
只有一处~ 调用信息见楼上 谢谢~
若是全局的,下面这样写会有问题的,后来登录的会把前一个登录的给覆盖掉
MDC.put("userId",userInfo.getLoginName());
MDC.put("userName",userInfo.getUserName());
import org.apache.log4j.MDC;
然后下面就直接MDC.put了~其他任何页面都没涉及到这个呢。
MDC.put("userName",userInfo.getUserName());
在这之前做一个判断,userInfo.getLoginName()和userInfo.getUserName()是否为null,为null的话就设定个特殊字符来记录下试试,如果这两个确定不为null那就不用这么做了
弄个源码跟进源码看下哪些地方导致了记录为Null
ps:没实际用过,只是提供参考
是session的问题,。