[英]Saving extra values in log4j JDBCAppender
我想在我的日志表中存储额外的值,例如将用户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中维护用户,然后将其用于insert语句中。
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}')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.