我想在日志表中存储额外的值,例如将用户 ID 存储在单独的列中。有人知道我该怎么做吗?
这是我的配置:
<appender name="jdbcAppender" class="org.apache.log4j.jdbc.JDBCAppender">
<param name="URL" value="jdbc:sqlite:D:/download/mapLogic/sf_log.db" />
<param name="user" value="" />
<param name="password" value="" />
<param name="driver" value="org.sqlite.JDBC" />
<param name="sql"
value="INSERT INTO sf_log(Message,Priority,Logger,Date) VALUES ('%m','%p','%c','%d{ABSOLUTE}')" />
</appender>
谢谢
您可以将用户维护在MDC然后将其放入插入语句中。
MDC.put("user", userid);
try {
doTheActualWorkWhichWillUseLogger();
} finally {
// need to remove this to avoid causing leaks
MDC.remove("user");
}
请注意,您不必为每个logger
打电话,就一次,但我输入了remove
为了说明如果要在 Servlet 中使用它,您必须清除MDC
通话结束后再次进行。
然后是你的插入语句:
INSERT INTO sf_log (Message,Priority,Logger,Date, user)
VALUES ('%m','%p','%c','%d{ABSOLUTE}', '%X{user}')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)