Flink总结-日志Log4j

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的异常

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容