2016-04-28 2 views
1

Я пробовал регистрировать другие экземпляры, используя logging.level.my.package, и они работают нормально, мне интересно, почему я не могу заставить logging.level.redis.clients.jedis работать? Просто просто хотите отслеживать процессы jedis в запущенном процессе.Журналирование клиента Jedis с Spring

отредактирован:

я продолжал получать

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. поэтому мне нужно выяснить, что вызывает это исключение.

В конфигурации i я задал свой тайм-аут до 30 секунд, но потребовалось меньше 10 секунд для исключения исключения таймаута.

+0

Пожалуйста, покажите примеры вашего кода и/или ошибок, которые вы получаете –

+0

@VictorMarchuk Я хочу узнать, что вызывает ошибку таймаута через ведение журнала, но похоже, что logging.level.redis.clients.jedis просто не работает это происходит с другим. – kenlz

ответ

0

Вместо того, чтобы оставлять сообщения о регистрации, Jedis бросает исключение JedisException (и классы потомков), которое обертывает причину происхождения (исключение). Только JedisSentinelPool ведет запись, но это действительно небольшое место.

Таким образом, вы не можете получать дополнительные сообщения о регистрации, хотя вы меняете уровень журнала пакета Jedis.

И Jedis использует Java Socket внутри, а исключение тайм-аута выбрасывается Socket, поэтому, если значение тайм-аута не установлено правильно, Jedis не может знать, почему происходит тайм-аут. Это просто общее исключение Socket.

Смежные вопросы