log4j jdbcappender将用户名传递到数据库表 [英] log4j jdbcappender pass username to database table

查看:94
本文介绍了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?

谢谢

推荐答案

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

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆