【问题标题】:how to log/trace redis calls from java spring app如何记录/跟踪来自 java spring 应用程序的 redis 调用
【发布时间】:2018-05-12 05:14:22
【问题描述】:

我正在寻找最简单的方法来记录源自我的 java springboot 微服务(查询和响应)的 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 代码吗?

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

【问题讨论】:

    标签: spring-boot logging redis subquery trace


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢,最后,我走的是 AOP 路线,我有一些特殊的代码可以将 Redis 存储库调用与 Oracle 存储库调用分开。这也意味着我得到的水平要高得多。 java方法public void delete(String id)public T findOne(String id)之类的东西。
    • @mp911de 我看到票已解决。我们有文件吗? Data Redis 的哪个版本现在支持日志记录?
    • 工单因“无法修复”而关闭。为什么?
    • 因为从 Spring Data Redis 引入命令日志没有简单的方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-13
    • 1970-01-01
    • 2017-03-02
    相关资源
    最近更新 更多