Habilitación del registro del cliente REST de Java en Elasticsearch en formato Curl

Estoy usando org.elasticsearch.client.RestHighLevelClient para ejecutar consultas.

De acuerdo con la documentación oficial, es posible registrar solicitudes en formato curl:

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

He agregado la siguiente línea a mi log4j.properties:

log4j.logger.org.elasticsearch.client = debug

Ahora veo solicitudes http, pero, ¿cómo puedo configurar el formato de rizo?

Respuesta 1

De acuerdo con su documentación, debe habilitar un tracerregistrador específico , que es responsable específicamente de la respuesta en formato curl.

Puede lograr esto en log4j 1.x con las siguientes líneas:

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
Respuesta: 2

Para habilitar el seguimiento de la versión RestHighLevelClient 7. + para mostrar la URL de las llamadas de descanso realizadas por el cliente elástico. Haz los pasos a continuación

  1. Agregue dependencias (en pom si está basado en Maven) slf4j-api, slf4j-log4j12, jcl-over-slf4j: slf4j para hacer que log4j funcione con el registro común utilizado por elastic logback-classic: registro común utilizado por elástico log4j-core, log4j-api : dependencias log4j2
  2. Habilite el trazador en las propiedades log4j log4j.logger.tracer = TRACE, stdout

Cambios a nivel de archivo Agregue estas dependencias en pom.xml

<!-- 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>

Cambios en el archivo 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
Respuesta: 3

Por si acaso alguien no quiere molestar a sí mismo con los madereros, es posible llamar toString()en QueryBuildery ver una solicitud.

Respuesta: 4

Tengo un gran archivo wav que me gustaría incluir en fragmentos más pequeños. También tengo un archivo .cue que tiene la longitud de la velocidad de fotogramas, en la que deberían estar los fragmentos más pequeños. Descubrí cómo dividir el wav ...

Revisé un proyecto maven e importé a mi Eclipse (Indigo) con integración maven a través del complemento m2eclipse. Configuré el proyecto como un proyecto maven. Cuando haga clic en mi proyecto y haga clic en ...

antes de haber estado usando etiquetas de tiempo de renderizado (como a4j: repeat, ui: repeat), para crear paneles basados ​​en una colección de elementos. Todo eso cambió y ahora debo usar c: forEach en su lugar. En cada panel hago un ...

Tenía cierta confusión sobre dónde debería poner el inicio de sesión comercial entre Model y Presenter. Algunos tutoriales dicen que el modelo tiene inicio de sesión comercial y otros dicen que el modelo es solo POJO.