@marlin
2016-08-16T17:54:30.000000Z
字数 803
阅读 3531
log
Flink
Flink 可以通过slf4j的方式将日志信息写入到log文件中。其中slf4j是日志系统的API,即日志框架,具体实现由各厂家提供,目前有两种实现LOG4J和LOGBACK。相关详情参考这里、这里。从网上评论看,LOGBACK在性能上更好一些,后续分析时重点关注。
在使用的Flink(1.0.1)中使用的默认使用的是LOG4J,应该可以通过配置进行修改。
LOGBACK通过JMX配置可以参考这个文档
在其官方文档中,明确指出支持JMX、syslog。其官方实现并没有直接提到nmtp、HDFS和logstash。其中Appender的各种实现list如下:
针对outputstream接口实现的有:
处理ILoggingEvent事件的有:
其中logback写出成logstash方式,在github上有个相应的工程,能够将写出日志按照logstash 的json格式输出。
logback写出到HDFS中,可以通过outputstream方式进行实现,由于HDFS可以从其FileSystem中获取一个Path,并在此基础上构造OutputStream os(这个过程参考这里),这样就可以利用该os创建一个FileAppender(参考Logback的manual中的这里)。猜测可以通过配置文件实现这个功能。