我有一个flink作业,它使用logback作为日志框架,因为需要将日志发送到logstash,而logback有一个logstash (Logstash appender )。当flink作业从Eclipse这样的IDE运行时,我可以在logstash中看到应用程序日志。日志配置文件logback.xml放在src/main/resources中,并包含在类路径中。即使在IDE之外的命令行运行作业时,日志记录也可以正常工作。
但是,当我通过flink仪表板将此作业部署到flink集群(独立,开始使用./start-cluster.bat)时,logback配置将被忽略,日志不会发送到logstash。
我阅读了更多关于flink日志机制的内容,并看到了配置logback的文档。本文档中提到的步骤与一些附加步骤(如在lib/文件夹中添加logstash-logback-encoder库以及logback jars )一起工作得很好。
尽管上面提到的步骤有效,但这是有问题的,因为flink使用的flink/conf文件夹中的logback配置适用于整个flink设置和在flink上运行的所有作业。作业不能有自己的日志记录配置。就像。我希望job1给file,console,logstash和Job2写信,只写file。
如何为从仪表板启动的每个flink作业提供独立的日志记录配置?在仪表板上提交作业时,是否可以传递日志配置?
有没有办法强迫flink在类路径上使用日志配置?
发布于 2018-11-29 09:52:08
Flink目前不支持指定每个作业的单个日志记录配置。日志记录配置对于整个集群总是有效的。
解决这一问题的一种方法是在每个作业模式下开始作业。这意味着您为每个Flink作业启动一个专用的Flink集群。
bin/flink run -m yarn-cluster -p 2 MyJobJar.jarhttps://stackoverflow.com/questions/53532798
复制相似问题