Posted at

IPアドレスとセッションIDをログに記録する

More than 5 years have passed since last update.

@Beforeフィルタとlog4jのMDCを組み合わせてみました。

複数項目を出力したいので、NDCではなくMDCを使います。下記のようにして requestsession から情報を取得してキーを付けてMDCに登録します。

@Before(priority = 0)

public static void before() {
MDC.put("ip", request.remoteAddress);
MDC.put("id", session.getId());
}

log4j.propertiesで %X{key} とすれば、登録した値をログに出力することができます。

# Console

log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d{ABSOLUTE} %X{ip} %X{id} %-5p ~ %m%n


参考