知识库

如何将参数值记录到 query.log 文件中

Neo4j 3.0 引入了在 log/query.log 文件中记录查询参数值的功能。控制此功能的设置位于 conf/neo4j.conf 文件中。要启用带有参数的查询日志记录,首先必须通过 conf/neo4j.conf 参数启用查询日志记录

dbms.logs.query.enabled=true

其次,要启用参数的日志记录,应设置

dbms.logs.query.parameter_logging_enabled=true
默认情况下,dbms.logs.query.parameter_logging_enabled 设置为 true

定义/启用这两个设置后(并重新启动 Neo4j 以应用更改),当使用参数提交 Cypher 语句时,参数值将出现在该行的末尾。

例如,提交

{
  "statements" : [ {
    "statement" : "CREATE (n) RETURN id(n)"
  }, {
    "statement" : "CREATE (n {props}) RETURN n",
    "parameters" : {
      "props" : {
        "name" : "My Node"
      }
    }
  } ]
}

将在日志条目中产生以下结果

2016-04-29 18:03:31.679+0000 INFO  86 ms: server-session        http    192.168.1.220   /db/data/transaction - CREATE (n {props}) RETURN n - {props: {name: My Node}}

其中尾部的 {props: {name: My Node}} 代表传递的参数值。

如果要定义 dbms.logs.query.parameter_logging_enabled=false,则上面的行将显示为

2016-04-29 18:02:23.868+0000 INFO  2 ms: server-session http    192.168.1.220   /db/data/transaction - CREATE (n {props}) RETURN n