Вы можете сохранить пользователя в MDC и затем использовать его в своем операторе вставки.
MDC.put("user", userid);
try {
doTheActualWorkWhichWillUseLogger();
} finally {
// need to remove this to avoid causing leaks
MDC.remove("user");
}
Обратите внимание, что вам не придется делать это для каждого logger
Вызовите, только один раз, но я вставил remove
, чтобы проиллюстрировать, что, если это будет использоваться в сервлете, вам придется снова очищать MDC
, как только вы закончите с вызовом.
А затем для вашего оператора вставки:
INSERT INTO sf_log (Message,Priority,Logger,Date, user)
VALUES ('%m','%p','%c','%d{ABSOLUTE}', '%X{user}')