将Kinesis Client Library(KCL)日志转储到文件

5

我正在使用Kinesis客户端库(KCL)订阅Kinesis流。所有的KCL日志都打印在控制台上。我需要将所有的日志转储到文件中。我尝试将log4j.properties和common-logging.properties文件添加到src文件夹中,但无法解决问题。

2个回答

2

KCL在后台使用Apache Commons Logging (common-logging)。

建议使用包含jcl-over-slf4j依赖的slf4j(或logback)。

这样,你的通用日志收集器(slf4j)将处理应用程序日志和Amazon类中生成的org.apache.commons.logging.Log接口所产生的日志。


0

你也可以使用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>

这个问题已经很老了,目前KCL库已经相当成熟,提供了这样的支持。谢谢。 - Sunil Gulabani

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接