我有log4j jdbcappender配置如下:
<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将用户名传递给数据库表?
谢谢
答案 0 :(得分:2)
使用MDC(映射的诊断上下文),如this example。
因此,您需要在某处映射用户名,例如:
MDC.put("username", username);
在log4j配置中,您可以像这样使用它:
<param name="ConversionPattern"
value="INSERT INTO log_table (level, loc, msg, username) VALUES ( '%p','%C;%L', '%m', '%X{username}' )"/>