通过Spring配置记录Cassandra查询

Mar*_*bel 3 java spring cassandra spring-data-cassandra cassandra-2.1

有什么简单的方法可以通过xml配置打开cassandra上的查询日志?我正在使用命名空间:

xmlns:cassandra="http://www.springframework.org/schema/data/cassandra"
Run Code Online (Sandbox Code Playgroud)

但我找不到任何合适的解决方案。我试图通过cqlsh打开跟踪,但是它对我的应用程序无效。

我也在尝试添加行:

<logger name="com.datastax.driver.core.QueryLogger.NORMAL" level="TRACE" />
Run Code Online (Sandbox Code Playgroud)

但也不起作用。

我的版本:spring-data-cassandra-1.4.0 cassandra:2.1.5

Har*_*mut 7

添加一个QueryLogger @Bean并获取Cluster@Autowired:

@Bean
public QueryLogger queryLogger(Cluster cluster) {
    QueryLogger queryLogger = QueryLogger.builder()
            .build();
    cluster.register(queryLogger);
    return queryLogger;
}
Run Code Online (Sandbox Code Playgroud)

(+显然QueryLogger.Builder按需配置)。

不要忘记在您的中将日志级别设置为DEBUG / TRACEapplication.yml

logging.level.com.datastax.driver.core.QueryLogger.NORMAL: DEBUG
logging.level.com.datastax.driver.core.QueryLogger.SLOW: TRACE
Run Code Online (Sandbox Code Playgroud)

瞧!


小智 5

请查看此链接并检查您是否将查询记录器添加到集群定义中,如下所述:

Cluster cluster = ...
QueryLogger queryLogger = QueryLogger.builder(cluster)
    .withConstantThreshold(...)
    .withMaxQueryStringLength(...)
.build();
cluster.register(queryLogger);
Run Code Online (Sandbox Code Playgroud)

如果有帮助,请告诉我。