2014-12-29 9 views
5

Vorrei registrare l'intera istruzione della query sul server Neo4j, tuttavia, dopo aver cercato SO & i documenti non sono riusciti. Ho trovato questa domanda SO, Rest Queries Logged on Neo4j Server, ma la modifica di queste impostazioni di configurazione non ha ottenuto ciò che speravo. Sto lavorando in Golang & utilizzando la libreria Go-CQ per comunicare con l'API REST in Neo4j versione 2.1.5.Come registrare l'istruzione della query sul server Neo4j, è possibile?

Quello che sto cercando è la query effettiva che viene eseguita, idealmente con i parametri passati. È possibile registrare queste informazioni? Qualsiasi aiuto sarebbe molto apprezzato, grazie!

risposta

10

Quanto segue riguarda la registrazione http che include anche query + parametri + risultati. Non è destinato alle impostazioni di produzione solo per il debug e il test.

Questo dovrebbe funzionare da 2.1.6, vedi: https://github.com/neo4j/neo4j/pull/3399

Questo è abilitata modificando:

org.neo4j.server.http.unsafe.content_log.enabled=true 

inoltre modificando:

org.neo4j.server.http.log.enabled=true 

In conf/neo4j-server.properties, e aumentando la modello (conf/neo4j-http-logging.xml) per l'output di richieste e risposte complete:

<pattern>%fullRequest\n\n%fullResponse</pattern> 

sezione completa in conf/neo4j-http-logging.xml

<configuration> 
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
    <file>data/log/http.log</file> 
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
     <fileNamePattern>data/log/http.%d{yyyy-MM-dd_HH}.log</fileNamePattern> 
     <maxHistory>30</maxHistory> 
    </rollingPolicy> 

    <encoder> 
     <!-- Note the deliberate misspelling of "referer" in accordance with RFC1616 --> 
     <pattern>%h %l %user [%t{dd/MMM/yyyy:HH:mm:ss Z}] "%r" %s %b "%i{Referer}" "%i{User-Agent}" \nRequest:\n%fullRequest\nResponse:\n%fullResponse</pattern> 
    </encoder> 
    </appender> 

    <appender-ref ref="FILE"/> 
</configuration> 

che si tradurrà in un file data/log/http.log, con contenuti di questo tipo:

127.0.0.1 - - [04/Jan/2015:11:23:50 +0100] "POST /db/data/transaction/commit HTTP/1.1" 200 372 "http://localhost:7474/browser/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36" 
Request: 
POST /db/data/transaction/commit HTTP/1.1 
Origin: http://localhost:7474 
X-stream: true 
Cookie: SQLiteManager_currentLangue=4; __jrDevToolbarSessionId=0x1.b6e143f2c334p-3; JSESSIONID=1AFCE7DCF2D5D7134E933871EBF88252; OSESSIONID=OS1412075842834-2614241454738785158; connect.sid=s%3AkRY6%2B4RyW%2FC2ZUMjfIVqtRRo.shdI5G0zTKSq%2BzKevgXzLEdHnwjUDYP1JFlOhupRf2I; _ga=GA1.1.149316633.1397859613; _mkto_trk=id:773-GON-065&token:_mch-localhost-1384123755719-53900; undefined=0; __atuvc=0%7C47%2C0%7C48%2C1%7C49%2C5%7C50%2C13%7C51 
Accept: application/json, text/plain, */* 
Connection: keep-alive 
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 
Referer: http://localhost:7474/browser/ 
Host: localhost:7474 
DNT: 1 
Accept-Encoding: gzip, deflate 
Accept-Language: en-US,en;q=0.8,de-DE;q=0.6,de;q=0.4 
Content-Length: 115 
Content-Type: application/json;charset=UTF-8 

{"statements":[{"statement":"match (n) return count(*)","resultDataContents":["row","graph"],"includeStats":true}]} 
Response: 
HTTP/1.1 200 OK 
Access-Control-Allow-Origin: * 
Content-Type: application/json 

{"results":[{"columns":["count(*)"],"data":[{"row":[0],"graph":{"nodes":[],"relationships":[]}}],"stats":{"contains_updates":false,"nodes_created":0,"nodes_deleted":0,"properties_set":0,"relationships_created":0,"relationship_deleted":0,"labels_added":0,"labels_removed":0,"indexes_added":0,"indexes_removed":0,"constraints_added":0,"constraints_removed":0}}],"errors":[]} 
+0

Grazie mille Michael! – evkline

Problemi correlati