当前位置: 首页 > 知识库问答 >
问题:

Flink日志记录限制:如何将日志记录配置传递给flink作业

况经纬
2023-03-14

我有一个flink作业,它使用logback作为日志框架,因为日志需要发送到logstash,logback有一个logstash appender(logstash logback appender)。appender工作正常,当flink作业从Eclipse这样的IDE运行时,我可以在logstash中看到应用程序日志。日志记录配置文件logback。xml放在src/main/resources中,并包含在类路径中。即使从IDE外部的命令行运行作业,日志记录也可以正常工作。

但是,当我通过flink仪表板在flink cluster上部署此作业(独立,使用启动cluster.bat启动)时,会忽略logback配置,并且不会将日志发送到logstash。

我阅读了更多关于flink的日志记录机制的信息,并遇到了配置logback的留档。此留档中提到的步骤可以很好地与一些额外的步骤一起使用,例如在lib/文件夹中添加logstash-logback-编码器lib以及logbackjars。

尽管上面提到的步骤有效,但这是有问题的,因为flink使用的flink/conf文件夹中的回退配置适用于整个flink设置和在flink上运行的所有作业。作业不能有自己的日志记录配置。例如,我希望job1写入file控制台logstash和作业2仅写入file

如何为从仪表板启动的每个flink作业提供单独的日志记录配置?在仪表板上提交作业时,是否可以通过任何方式传递日志记录配置?

有没有办法强迫flink在类路径上使用日志记录配置?

共有1个答案

郎弘业
2023-03-14

Flink目前不支持为每个作业指定单独的日志配置。日志配置始终对整个集群有效。

解决此问题的一种方法是按作业模式启动作业。这意味着您可以为每个Flink作业启动一个专用的Flink群集。

bin/flink run -m yarn-cluster -p 2 MyJobJar.jar
 类似资料:
  • 问题内容: 如何配置OpenEJB日志记录格式?这就是我现在在日志中看到的内容: 我想禁用消息,并更改其他消息的格式。中的更改无效。 问题答案: 这是我为使事情正常运行所做的工作: 现在工作正常。这是我的: 这是: 现在,由于大卫的支持,我可以在测试期间微调OpenEJB的日志记录:)

  • 我想在我的应用程序中使用SLF4J+logback用于两个目的--日志和审计。 14:41:57.978[main]信息AUDIT_LOGGER-110欢迎使用main 如何确保审核消息在审核记录器下只出现一次?

  • 互联网上有许多帖子建议如何从logback迁移到log4j2进行Spring引导日志记录。 参考这个sof post-Spring Boot日志与log4j2-我已经配置我的项目使用log4j2。然后我添加了一些基本的log4j2.xml和log4j2.properties文件来测试。 但是在这些更改之后,我的项目无法进行任何日志记录。有人能帮我找出毛病吗? 项目代码可在github-https:

  • 问题内容: 我正在考虑将Redis用于Web应用程序日志记录目的。我用谷歌搜索,有人将日志转储到Redis队列/列表中,然后将计划的工作人员转储到磁盘中。 http://nosql.mypopescu.com/post/8652869828/another-redis-use-case- centralized-logging 我希望寻求理解,为什么不直接使用Redis持久化到磁盘?如果我分配了一

  • logging 模块自 2.3 版以来一直是 Python 标准库的一部分。在 PEP 282 中有对它的简洁描述。除了 基础日志教程 之外,这些文档是非常难以阅读的。 日志记录一般有两个目的: 诊断日志 记录与应用程序操作相关的日志。例如,当用户遇到程序报错时, 可通过搜索诊断日志以获得上下文信息。 审计日志 为商业分析而记录的日志。从审计日志中,可提取用户的交易信息, 并结合其他用户资料构成用

  • 主要内容:修改日志管理器配置每个初学者都很熟悉在有问题的代码中使用 System.out.println 方法在控制台打印消息,来帮助观察程序运行的操作过程。如果你使用  System.out.println 方法,一旦发现问题的根源,就要将这些语句从代码中删去。如果接下来又出现了问题,就需要再插入几个调用 System.out.println 方法的语句,如此反复,增加了工作量。 日志用来记录程序的运行轨迹,方便查找关键信