2017-05-27 54 views
0

如何禁用Spring批量SQL查詢的日誌記錄?禁用Spring批量SQL查詢的日誌記錄

它們從由於org.springframework.jdbc.core.JdbcTemplate記錄器記錄:

logging.level: 
    org.springframework.jdbc: TRACE 

,看起來像:

2017-05-27 20:41:55.957 DEBUG 13088 --- [jobLauncherTaskExecutor-1] o.s.jdbc.core.JdbcTemplate    : Executing prepared SQL update 
2017-05-27 20:41:55.957 DEBUG 13088 --- [jobLauncherTaskExecutor-1] o.s.jdbc.core.JdbcTemplate    : Executing prepared SQL statement [UPDATE BATCH_JOB_EXECUTION_CONTEXT SET SHORT_CONTEXT = ?, SERIALIZED_CONTEXT = ? WHERE JOB_EXECUTION_ID = ?] 
2017-05-27 20:41:55.958 DEBUG 13088 --- [jobLauncherTaskExecutor-1] o.s.jdbc.core.JdbcTemplate    : SQL update affected 1 rows 

隨着這些消息的這種大量的我看不到我的應用程序消息(有此事)。

問題是,通過禁用此記錄器我的應用程序SQL查詢也將被禁用。

回答

1

您尚未指定您使用的記錄框架。

我在使用logback的Spring Batch應用程序中管理了這個。

我爲我的應用程序定義了一個單獨的記錄器,其餘爲默認記錄器,然後我可以分別爲不同的記錄器設置記錄級別。

請參閱my slideshare presentation瞭解關於在logback中定義命名記錄器的一些想法。

要地址,

隨着這些消息的這種大量的我看不到我的應用程序 消息

我想,無論日誌框架您使用的想法基本是確定爲您的應用程序需要一個單獨的記錄器,並將其餘部分指向默認記錄器,然後單獨設置級別,即在包級別進行記錄對此無濟於事。

其他解決方案(如accepted answer here中提到的解決方案)也會禁用您的查詢日誌。

+0

我的應用程序還使用'JdbcTemplate',我喜歡看到這些SQL查詢。但除此之外,我看到了大量的Spring Batch SQL查詢...我害怕只有msg內容的語法分析才能擺脫這些消息...... – gavenkoa

+0

關於您的演示文稿。這種方法過於激進,可能會花費在嚮應用程序添加對MDC的支持上。在這種情況下,您將擁有邏輯標記(在MCD中,這正是您最初試圖實現的)和系統結構(記錄器名稱,這對過濾非常有用)。 https://logback.qos.ch/manual/mdc.html – gavenkoa

+0

我想,我誤解了你的問題,我的回答沒有解決你的問題。你解決了你的問題嗎? –