Включение регистрации клиента Java REST в Elasticsearch в формате Curl - PullRequest
0 голосов
/ 11 января 2019

Я использую org.elasticsearch.client.RestHighLevelClient для выполнения запросов.

Согласно официальной документации, протоколировать запросы можно в формате curl:

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

Я добавил следующую строку в свой log4j.properties:

log4j.logger.org.elasticsearch.client = debug

Теперь я вижу http-запросы, но как мне настроить форматирование curl?

Ответы [ 2 ]

0 голосов
/ 18 июля 2019

Чтобы включить трассировку для RestHighLevelClient 7. + версия, чтобы показать URL для вызовов покой, сделанных эластичным клиентом. Выполните шаги ниже

  1. Добавить зависимости (в pom, если основан на maven) slf4j-api, slf4j-log4j12, jcl-over-slf4j: slf4j, чтобы log4j работал с регистрацией общих ресурсов, используемой эластичной logback-classic: лесозаготовки используются эластичным log4j-core, log4j-api: зависимости log4j2
  2. Включить трассировщик в свойствах log4j log4j.logger.tracer = TRACE, стандартный вывод

Изменения уровня файла Добавьте эти зависимости в 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>

Изменения в файле 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
0 голосов
/ 12 января 2019

Согласно их документации, вам нужно включить определенный tracer регистратор, который отвечает конкретно за ответ формата curl.

Вы можете достичь этого в log4j 1.x со следующими строками:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...