log4j jdbcappender将用户名传递到数据库表 [英] log4j jdbcappender pass username to database table
本文介绍了log4j jdbcappender将用户名传递到数据库表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的log4j jdbcappender配置如下:
I have log4j jdbcappender configuration as follows:
<appender name="jdbcAppender" class="bean.CustomJdbcAppender">
<param name="jndiDataSource" value="myDS"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="INSERT INTO log_table (level, loc, msg) VALUES ( '%p','%C;%L', '%m' )"/>
</layout>
如何将用户名从log4j传递到数据库表?
How can I pass username to the database table from log4j?
谢谢
推荐答案
Use the MDC (Mapped Diagnostic Context), like this example.
因此,您需要在其中映射用户名的地方,例如:
So, somewhere you need to map the username, e.g.:
MDC.put("username", username);
在log4j配置中,您可以像这样使用它:
In your log4j configuration, you can use it like this:
<param name="ConversionPattern"
value="INSERT INTO log_table (level, loc, msg, username) VALUES ( '%p','%C;%L', '%m', '%X{username}' )"/>
这篇关于log4j jdbcappender将用户名传递到数据库表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文