如何从Java Spring应用程序记录/跟踪redis调用



我正在寻找从我的Java Springboot Microservice(查询和响应)记录redis活动的最简单方法。

每当从/插入/插入/插入redis时,我想(在主Springboot日志文件中)日志线。

我的代码使用典型的spingframework数据redis方法这样:

import org.springframework.data.redis.core.RedisHash;
import org.springframework.data.redis.core.TimeToLive;
@RedisHash
public class InternalAddress {
    private String county;
    private String postcode;
    @TimeToLive
    private Long expiry;
}

*

import org.springframework.data.repository.CrudRepository;
public interface AddressRepository extends CrudRepository<InternalAddress, String> {}

我试图启用这样的记录。

logging:
  level:
    root: INFO
    redis.clients: TRACE
    org.springframework.data: TRACE

,但是我得到的对我来说是完全没有用的:一无所有,或者只是有关打开或关闭的连接的一些信息...

我想在日志中看到的是这样:

2017-11-28T16:05:18.140+00:00 HGETALL key5645 => {...returned data...}
2017-11-28T16:05:25.140+00:00 LPUSH whatever
2017-11-28T16:05:25.140+00:00 HMSET blahblahblah

有什么想法吗?我是否想念正确的课程?

我需要写一些自定义的拦截器/侦听器/AOP代码吗?

还有其他方法吗?预先感谢

现在没有可用的日志记录。您可以自己实施一些东西,但是您需要使用AOP来增加连接工厂,这可能有点工作。我提交了一张票以解决您的问题。

您是否尝试过使用redis的MONITOR命令?

在application.yml/properties文件中仅包括以下内容,您可以看到一些相关的日志

logging:
  level:
    org.springframework.data.*.*: trace
    org.springframework.cache.*: trace

最新更新