2
votes

Activation de la journalisation du client Java REST dans Elasticsearch au format Curl

J'utilise 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

Je vois maintenant des requêtes http, mais comment puis-je définir le formatage curl?


0 commentaires

4 Réponses :


3
votes

Selon leur documentation, vous devez activer un enregistreur tracer spécifique, qui est spécifiquement responsable de la réponse au format curl.

Vous pouvez y parvenir dans log4j 1.x strong > 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


0 commentaires

0
votes

Pour activer la trace pour la version RestHighLevelClient 7. + pour afficher l'URL des appels de repos effectués par le client élastique. Faites les étapes ci-dessous

  1. Ajouter des dépendances (dans pom si basé sur maven) slf4j-api, slf4j-log4j12, jcl-over-slf4j: slf4j pour faire fonctionner log4j avec la journalisation des communs utilisée par Elastic logback-classic: journalisation commune utilisée par Elastic log4j-core, log4j-api: dépendances log4j2
  2. Activer le traceur dans les propriétés log4j log4j.logger.tracer = TRACE, sortie standard

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

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

Modifications dans le fichier log4j2.properties

<!-- log4j2 -->
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
            <version>2.11.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>2.11.2</version>
        </dependency>
        <!-- slf4j to make log4j work with commons logging used by elastic -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.12</version>
        </dependency>
        <!-- To bind log4j2 to sl4j -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.7.12</version>
            <scope>test</scope>
        </dependency>
        <!-- To bind commons logging used by elastic to sl4j -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jcl-over-slf4j</artifactId>
            <version>1.7.12</version>
        </dependency>
        <!-- commons logging used by elastic -->
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.2.3</version>
            <exclusions>
                <exclusion>
                    <!-- Defined below -->
                    <artifactId>slf4j-api</artifactId>
                    <groupId>org.slf4j</groupId>
                </exclusion>
            </exclusions>
        </dependency>


0 commentaires

1
votes

Juste au cas où quelqu'un ne voudrait pas se soucier des enregistreurs, il est possible d'appeler toString () sur QueryBuilder et de voir une requête.


0 commentaires

0
votes

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

# Debugging elasticsearch client
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


0 commentaires