2016-04-28 106 views
1

我試圖使用logging.level.my.package記錄其他實例,他們工作得很好,我想知道爲什麼我不能讓logging.level.redis.clients.jedis工作?只需要在運行過程中跟蹤jedis進程。Jedis客戶端與彈簧日誌記錄

編輯:

我一直得到

Cannot get Jedis connection; nested exception is redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketTimeoutException: connect timed out 
org.springframework.data.redis.RedisConnectionFailureException: Cannot get Jedis connection; nested exception is redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketTimeoutException: connect timed out 

雖然不是所有的時間,但這會導致本來應該在redis的去數據丟失。這就是爲什麼我需要找出造成這種異常的原因。

在配置上,我特意將其超時設置爲30秒,但它花了不到10秒的時間來拋出超時異常。

+0

請顯示您的代碼和/或錯誤的例子 –

+0

@VictorMarchuk我想通過日誌記錄找出什麼導致超時錯誤,但它似乎logging.level.redis.clients.jedis只是不會工作的方式它與另一個有關。 – kenlz

回答

0

Jedis拋出JedisException(和後代類)來封裝原始原因(Exception),而不是留下日誌消息。只有JedisSentinelPool可以進行日誌記錄,但這是一個非常小的地方。

因此,儘管您更改Jedis軟件包的日誌級別,但無法獲得進一步的日誌記錄消息。

Jedis內部使用Java Socket,並且Socket引發超時異常,所以除非超時值設置不正確,否則Jedis無法知道爲什麼發生超時。這只是一個普通的Socket異常。