2017-02-14 73 views
1

我正在用Java構建數據分析Web應用程序。我每天都會從其他公司的項目中獲取數據並執行一些流程。我通過獨特的pid來識別每個項目。當我嘗試使用log4j的插入行的問題DB,如:具有自定義列值的Log4j JDBCAppender

INSERT INTO app_log(pid, date, level, class, message) 

我只能獲得運行期間,PID,我的處理是多線程。如果我設置SQL編程條款,如:

props.put("log4j.appender.DB.sql", "INSERT INTO app_log(pid, date, level, class, message) VALUES('" + productId + "','%d{yyyy-MM-dd HH:mm:ss}', '%p', '%c', '%m')"); 

會因爲它們是在同一時間運行PID1日誌是misset到PID2

我真正想實現的是將不同的日誌按照自己的pid存儲到DB中。

你能給我提供任何好的解決方案嗎?

回答

0

好吧,它似乎MDC和ThreadContext會搞砸pid,所以我覺得最好用我的應用程序來實現我自己的數據庫記錄器。