Дамп Kinesis Client Library (KCL) журналы в файл

Я использую Kinesis Client Library (KCL), чтобы подписаться на поток Kinesis. Все журналы KCL напечатаны на консоли. Мне нужно сбросить все журналы в файл. Я попытался добавить файлы log4j.properties и common-logging.properties в папку src, но не смог разобраться.

1 ответ

KCL использует Apache Commons Logging (обычное ведение журнала) в фоновом режиме.

Попробуйте использовать slf4j с включенной зависимостью jcl-over-slf4j (или logback).

Таким образом, ваш общий сборщик журналов (slf4j) будет обрабатывать как журналы вашего приложения, так и журналы, сгенерированные org.apache.commons.logging.Log интерфейс в классах Amazon.

Вы также можете использовать logback.xml

./bin/kcl-bootstrap --java /usr/local/openjdk-8/bin/java --log-configuration ./properties/logback.xml -p ./properties/kcl.properties

Создайте файл logback.xml со следующим содержимым

<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<appender name="DEBUG" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
        <pattern>%d [%thread] %-5level %logger{36} [%mdc{ShardId:-NONE}] - %msg %n</pattern>
    </encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
    <file>smlogs.log</file>
    <append>true</append>
    <!-- set immediateFlush to false for much higher logging throughput -->
    <immediateFlush>true</immediateFlush>
    <!-- encoders are assigned the type
        ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
    <encoder>
    <pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
    </encoder>
</appender>
<root level="DEBUG">
    <appender-ref ref="DEBUG" />
      <appender-ref ref="FILE" />
</root>
Другие вопросы по тегам