spring-boot - 如何记录/跟踪来自 java spring 应用程序的 redis 调用

标签 spring-boot logging redis subquery trace

我正在寻找最简单的方法来记录源 self 的 java springboot 微服务(查询和响应)的 redis 事件。

每当从/向redis 中提取/插入数据时,我想查看(在主springboot 日志文件中)日志行。

我的代码使用典型的 spingframework data 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

有什么想法吗?我错过了我应该追踪的正确类(class)吗?

我需要编写一些自定义拦截器/监听器/aop 代码吗?

还有其他方法吗?提前致谢

最佳答案

目前没有可用的日志记录。您可以自己实现一些东西,但您需要使用 AOP 来扩充连接工厂,这可能需要一些工作。我提交了 ticket解决您的问题。

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

关于spring-boot - 如何记录/跟踪来自 java spring 应用程序的 redis 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47536795/

相关文章:

java - 如何在拥有 html、css 和 js 文件的情况下构建 Angular6 项目

java - 插入带有子项的@OneToMany 关系对象而不在子表中插入父项ID?

asynchronous - 我是否需要重新编写代码以使所有数据库操作异步?

mysql - Springboot&Mysql : cannot find table with uppercase names

spring-boot - Spring Boot Rest Controller API 不返回 json

java - 我的代码可以在没有正常字体模式的情况下登录到 Wildfly 控制台(占用线路)吗?

python - 如何在 Redis worker 中使用 Python 日志记录?

c# - 从外部配置文件设置的 log4net 不起作用

javascript - 尝试通过 Redis 更好地理解 NodeJS 并使用后台任务

Redis键自动删除