首页 > 解决方案 > 如何在运行时更改apache flink的日志级别

问题描述

是否可以在运行时更改 flink 框架的日志级别?当 flink 集群已经在运行时?我提到了下面的文件,没有这样的提及

https://ci.apache.org/projects/flink/flink-docs-stable/monitoring/logging.html

标签: loggingapache-flink

解决方案


在程序代码中,Flink 使用 SLF4J 进行日志记录,并支持 log4j (log4j2 for Flink>= 1.11, log4j < 1.11) 和 Logback 作为底层的日志框架,可以通过各自的 .properties 文件自由配置。

据我所知,SLF4J 本身不支持在运行时和 Flink 本身中更改日志记录级别,我没有看到与底层日志记录框架(如 log4j 或 logback)相关的自定义代码,它们会通过某种机制(如 REST)来更改日志级别API。

也就是说,日志框架本身可能允许某种机制在运行时更改日志级别。在简短的谷歌搜索中,我发现例如 log4j 包含了一些机制,例如通过使用 File Watchdog 并在运行时重新加载日志记录属性文件,请参见此处的示例:动态更改 log4j 日志级别 当然,您需要构建工具你自己,即找出你的TaskManagers和JobManagers在哪里运行,有他们的工作目录并相应地提供/编辑文件。

结论:我建议您使用保存点停止作业,更改日志记录属性并重新启动作业。这可能是更容易的方法去..


推荐阅读