使用Kinesis客户端库(KCL)订阅kinesis流。所有KCL日志都打印在控制台上。我需要将所有日志转储到文件中。我尝试在src文件夹中添加log4j.properties和common-logging.properties文件,但无法进行排序。
答案 0 :(得分:2)
KCL在后台使用Apache Commons Logging(通用日志记录)。
尝试使用包含jcl-over-slf4j依赖关系的slf4j(或logback)。
这样,您的通用日志收集器(slf4j)将处理您的应用程序日志和Amazon类中org.apache.commons.logging.Log
接口生成的日志。
答案 1 :(得分: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>