3

ユーザー 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>

ありがとうございました

4

1 に答える 1

1

MDCでユーザーを維持し、insert ステートメントで使用することができます。

MDC.put("user", userid);
try {
  doTheActualWorkWhichWillUseLogger();
} finally {
  // need to remove this to avoid causing leaks
  MDC.remove("user");
}

呼び出しごとにこれを行う必要はなくlogger、1 回だけであるremoveことに注意MDCしてください。電話。

そして、あなたの挿入ステートメントのために:

INSERT INTO sf_log (Message,Priority,Logger,Date, user) 
     VALUES ('%m','%p','%c','%d{ABSOLUTE}', '%X{user}')
于 2012-03-29T11:11:38.363 に答える