问题描述
log4j.rootLogger=DEBUG,DATABASE log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender log4j.appender.DATABASE.URL=jdbc:db2://10.1.16.210:50000/TKLPF_DBlog4j.appender.DATABASE.driver=com.ibm.db2.jcc.DB2Driverlog4j.appender.DATABASE.user=administratorlog4j.appender.DATABASE.password=tkfzxmm!**188log4j.appender.DATABASE.Threshold=DEBUGlog4j.appender.DATABASE.sql=INSERT INTO NULLID.zw_system_log (SYSTEM_LOG_ID,LOGIN_ID,PERSON_NAME,OPERATE_DESCRIPTION,MODULE_NAME,MODULE_CODE,OPERATION_TYPE,OPERATE_DT, STATUS, UPDATER, UPDATE_DT) VALUES ('SYSTEM_LOG_ID','LOGIN_ID', '%X{PERSON_NAME}', 'OPERATE_DESCRIPTION', 'MODULE_NAME', 'MODULE_CODE','OPERATION_TYPE', 'OPERATE_DT', '1', 'UPDATER', '%d{yyyyMMddHHmmss}')log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout log4j.appender.DATABASE.layout.ConversionPattern=[ejunnet] %d - %c -%-4r [%t] %-5p %c %x - %m%nlog4j.appender.A1=org.apache.log4j.DailyRollingFileAppender SYSTEM_LOG_ID是主键,但是用的是DB2数据库现在自增也不可以像后面的一些字段都是自定义的,但是不知道后台怎么获取。查了一些资料,他们获取的都是session中的Id和name,但是我的很多都没在session中放着,我该如何获取?急用,谢谢! 问题补充:iihero 写道
解决方案
楼主是不是需要log的MDC上设置一下,详情可见:http://blog.donews.com/ooFrank/archive/2006/02/11/722553.aspx
解决方案二:
引用好的,谢谢啊! 但是我的就是不成功啊,不知道什么原因。数据库不一样有差别吗?实在不行的话,你可以debug看看最后生成的sql是什么:)
解决方案三:
引用现在我要把这些字段全放到log4j中去,是不是要在UserFilter这个类中把他们get或set呢? 刚开始接触还是很迷茫,谢谢......是的 ,希望可以帮到你
解决方案四:
引用<filter> <filter-name>set log4j MDC for log2userId(这是什么意思啊,有点不懂)</filter-name> <filter-class>UserFilter</filter-class> </filter> <filter-mapping> <filter-name>set log4j MDC for log2userId</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> set log4j MDC for log2userId 这个只是一个名字。具体可以看一下 UserFilter这个类,你可以从任何地方,把值放入到MDC,并且指定相应的名字,这样,就能在log中打上了。
解决方案五:
没有字段值来源的应该可以不指定值吧。只取部分列试试。