Flink总结-日志Log4j
2018-04-19 本文已影响0人
zachary_1db5
Flink使用的slf4j接口,如果要使用logback,只需要把log4j排除在外就可以了
在flink-dist_2.10-1.3.1.jar的jar包中,是没有logback的依赖,所以需要加进去才行
使用json格式打印日志
logback日志打印成json格式
在flink的项目中只有slf4j的包,所以需要加入loback的包。又因为flink中hadoop的jar包使用的固定的log4j包。所以需要加入的jar包有:
- jackson-annotations-2.9.0.jar
- jackson-core-2.9.0.jar
- jackson-databind-2.9.0.jar
- log4j-1.2.17.jar
- logback-classic-1.2.3.jar
- logback-core-1.2.3.jar
- logstash-logback-encoder-5.0.jar
- slf4j-api-1.7.25.jar
需要将日志转换成json格式,需要额外的增加logstash的jar包和配置
- logstash-logback-encoder-4.11.jar
- jackson-databind-2.8.9.jar
参考文档
https://github.com/logstash/logstash-logback-encoder#composite-encoderlayout
<appender name="file" class="ch.qos.logback.core.FileAppender">
<file>${log.file}</file>
<append>false</append>
<encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
<providers>
<timestamp/>
<threadName/>
<logLevel/>
<callerData/>
<message/>
<stackTrace/>
</providers>
</encoder>
</appender>
log4j日志打印成json格式
使用组件
Logstash json_event pattern for log4j
The PatternLayout an organization uses is pretty much begging to be bikeshedded. This library is essentially a "preformatted" layout that just happens to be the exact format that Logstash uses for json_event.
需要的依赖包:
- json-smart v1.1.1
- jsonevent-layout
比较大的坑
由于打印出的日志包含 md5{}, filebeat转化的是报deconder的异常