2016-04-28 49 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异常。