2017-11-28 13 views
1

내 Java springboot 마이크로 서비스 (쿼리 및 응답)에서 발생한 redis 활동을 로그하는 가장 간단한 방법을 찾고 있습니다.Java 스프링 앱에서 redis 호출을 로그/추적하는 방법

데이터를 추출/삽입 할 때마다 (기본 springboot 로그 파일에서) 로그 라인을보고 싶습니다. 전형적인 spingframework 데이터 레디 스이 같은 접근

내 코드 사용 :

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 코드가 있습니까?

다른 방법이 있습니까? 미리 감사드립니다.

답변

0

로깅을 사용할 수 없습니다. 직접 구현할 수도 있지만 AOP로 연결 팩토리를 늘려야 할 필요가 있습니다. 귀하의 문제를 해결하기 위해 ticket을 제출했습니다.

Redis 'MONITOR 명령을 사용해 보셨습니까?

+0

감사합니다. 결국 AOP 경로를 따라갈 것이고 Oracle 저장소 호출에서 Redis 저장소 호출을 구분하는 특수 코드가 있습니다. 그것은 또한 내가 얻는 것이 훨씬 높은 수준이라는 것을 의미합니다. java 메소드'public void delete (String id)'또는'public T findOne (String id)'와 같은 것들. – MikaelW