3 votes

Activer la journalisation du client Java REST dans Elasticsearch en format Curl

Je suis en train d'utiliser org.elasticsearch.client.RestHighLevelClient pour exécuter des requêtes.

Selon la documentation officielle, il est possible de journaliser les requêtes au format curl :

https://www.elastic.co/guide/en/elasticsearch/client/java-rest/current/java-rest-low-usage-logging.html

J'ai ajouté la ligne suivante à mon log4j.properties :

log4j.logger.org.elasticsearch.client = debug

Maintenant je peux voir les requêtes http, mais comment puis-je définir le format curl ?

4voto

Mysterion Points 1263

Selon leur documentation, vous devez activer le journal tracer spécifique, qui est responsable spécifiquement du format de réponse curl.

Vous pouvez y parvenir dans log4j 1.x avec les lignes suivantes :

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss}] [%-5p] %c{1}:%L - %m%n

log4j.logger.tracer=TRACE, stdout

2voto

GlaIZier Points 693

Juste au cas où quelqu'un ne veut pas se préoccuper des journaux, il est possible d'appeler toString() sur QueryBuilder et voir une requête.

0voto

spats Points 118

Pour activer la trace pour la version 7.+ de RestHighLevelClient afin d'afficher l'URL des appels REST effectués par le client Elastic. Suivez les étapes ci-dessous

  1. Ajoutez les dépendances (dans le fichier pom si vous utilisez Maven) slf4j-api , slf4j-log4j12, jcl-over-slf4j : slf4j pour faire fonctionner log4j avec le logging commun utilisé par Elastic logback-classic : logging commun utilisé par Elastic log4j-core , log4j-api : dépendances pour log4j2
  2. Activez le traceur dans les propriétés de log4j log4j.logger.tracer=TRACE, stdout

Changements au niveau du fichier Ajoutez ces dépendances dans le fichier pom.xml

            org.apache.logging.log4j
            log4j-api
            2.11.2

            org.apache.logging.log4j
            log4j-core
            2.11.2

            org.slf4j
            slf4j-api
            1.7.12

            org.slf4j
            slf4j-log4j12
            1.7.12
            test

            org.slf4j
            jcl-over-slf4j
            1.7.12

            ch.qos.logback
            logback-classic
            1.2.3

                    slf4j-api
                    org.slf4j

Changements dans le fichier log4j2.properties

status = error
name = PropertiesConfig
filters = threshold
filter.threshold.type = ThresholdFilter
filter.threshold.level = debug
appenders = console
appender.console.type = Console
appender.console.name = STDOUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
rootLogger.level = debug
rootLogger.appenderRefs = stdout
rootLogger.appenderRef.stdout.ref = STDOUT
log4j.logger.tracer=TRACE, stdout

0voto

Yelling Aung Points 71

Pour la version log4j 2.x, ajoutez la configuration suivante dans le fichier log4j2.properties.

# Débogage de client Elasticsearch
loggers=esclient, esclientsniffer, tracer

logger.esclient.name = org.elasticsearch.client
logger.esclient.level = trace
logger.esclient.appenderRefs = stdout
logger.esclient.appenderRef.stdout.ref = STDOUT

logger.esclientsniffer.name = org.elasticsearch.client.sniffer
logger.esclientsniffer.level = trace
logger.esclientsniffer.appenderRefs = stdout
logger.esclientsniffer.appenderRef.stdout.ref = STDOUT

logger.tracer.name=tracer
logger.tracer.level=trace
logger.tracer.appenderRefs = stdout
logger.tracer.appenderRef.stdout.ref = STDOUT

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X