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包有:

需要将日志转换成json格式,需要额外的增加logstash的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.

需要的依赖包:

比较大的坑

由于打印出的日志包含 md5{}, filebeat转化的是报deconder的异常

https://github.com/logstash/log4j-jsonevent-layout

上一篇下一篇

猜你喜欢

热点阅读