【问题标题】:Is there a way to log queries on Neo4J like Hibernate?有没有办法像 Hibernate 一样在 Neo4J 上记录查询?
【发布时间】:2012-02-16 00:46:21
【问题描述】:

所以,这里是场景:

  • 我有 Neo4J 服务器在本地运行,其中包含一些数据
  • 我有一个使用spring-data-neo4j 的网络应用程序

以下代码基于示例代码Cineasts

public interface CrewRepository extends GraphRepository<Crew> {

  Iterable<Crew> findByNameLike(String name);

  @Query("start thinker=node({0}) match thinker-[:crews]-crews return crews")
  Set<Crew> findByThinker(Long thinkerId);

}

这里没有消息。问题是:查询findByNameLike 不起作用,而findByThinker 起作用。

我已经多次修改了我的日志配置文件 - 最终版本如下 - 但是,无论我尝试什么,我都看不到任何查询被记录在我的日志文件或服务器上。

<logger name="org.neo4j">
  <level value="DEBUG" />
  <appender-ref ref="console" />
</logger>

<logger name="org.springframework.data.neo4j">
  <level value="DEBUG" />
  <appender-ref ref="console" />
</logger>

<root>
  <priority value="error" />
  <appender-ref ref="console" />
</root>

我想要的只是记录查询,这样我就可以查看它是否是 spring-data-neo4j 上的错误,或者我是否遗漏了什么...我查看了两者的文档,代码示例,但找不到任何东西具体的。

有什么帮助吗?谢谢!

【问题讨论】:

  • 查询登录将被添加到下一个发布的快照/里程碑中。
  • 您的Crew 班级是什么样的?您将什么传递给 findByNameLike 以及您在 Crew 对象中存储了哪些数据?

标签: nosql neo4j spring-data spring-data-neo4j


【解决方案1】:

如果有人在这里寻找如何在通过 REST API 远程访问 Neo4j 服务器时记录查询,请使用

<logger name="org.springframework.data.neo4j.rest.SpringRestCypherQueryEngine">
    <level value="debug" />
</logger>

如果您使用 Spring Data Neo4j 并希望查看与您的 DAO 方法对应的派生查询,

<logger name="org.springframework.data.neo4j.repository.query.DerivedCypherRepositoryQuery">
    <level value="debug" />
</logger>

【讨论】:

  • 无论是这个还是其他答案都不适用于 log4j2。与 log4j2 有什么不同吗?
【解决方案2】:

您可以通过将以下行添加到您的 log4j.xml 来启用查询日志记录:

<logger name="org.springframework.data.neo4j.support.query">
    <level value="debug" />
</logger>

【讨论】:

    猜你喜欢
    • 2021-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-05
    相关资源
    最近更新 更多