1

我有 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 传递到数据库表?

谢谢

4

1 回答 1

2

使用 MDC(映射诊断上下文),如本例

因此,您需要在某个地方映射用户名,例如:

MDC.put("username", username);

在您的 log4j 配置中,您可以像这样使用它:

<param name="ConversionPattern"
      value="INSERT INTO log_table (level, loc, msg, username) VALUES ( '%p','%C;%L', '%m', '%X{username}' )"/>
于 2012-05-20T11:38:08.837 回答