赞
踩
学习笔记如下:
所有 Flink 进程都会创建一个文本格式的日志文件,其中包含该进程中发生的各种事件的信息。
这些日志提供了深入了解 Flink 内部工作的途径,同时可以用来输出检测出的问题(以 WARN / ERROR 信息的形式),还可以辅助调试问题。
日志文件可以通过 JobManager / TaskManager 对应的 WebUI 页面访问。所使用的 Resource Provider 可能会提供额外的访问方式来访问日志。Flink 中的日志记录是使用 SLF4J 日志接口实现的。
Log4j 2 是通过 property 配置文件进行配置的。
Flink 发行版在 conf
目录中附带了以下 log4j 配置文件,如果启用了 Log4j 2,则会自动使用如下文件:
log4j-cli.properties
:Flink 命令行使用(例如 flink run
);log4j-session.properties
:Flink 命令行在启动基于 Kubernetes/Yarn 的 Session 集群时使用(例如 kubernetes-session.sh
/yarn-session.sh
);log4j-console.properties
:Job-/TaskManagers 在前台模式运行时使用(例如 Kubernetes);log4j.properties
: Job-/TaskManagers 默认使用的日志配置。Log4j 会定期扫描这些文件的变更,并在必要时调整日志记录行为。默认情况下30秒检查一次,监测间隔可以通过 Log4j 配置文件的 monitorInterval
配置项进行设置。
Flink 附带了 Log4j API bridge 相关的依赖,使当前基于 Log4j 1 开发的应用程序可以继续正常运行。要配置 Flink 与 Log4j 1 一起使用,则需要在 pom 文件中进行如下替换:
lib
目录中移除 log4j-core
,log4j-slf4j-impl
和 log4j-1.2-api
的 jars 包;lib
目录中添加 log4j
,slf4j-log4j12
和 log4j-to-slf4j
的 jars 包;conf
目录中的所有 log4j 配置文件要配置 Flink 与 logback 一起使用,则需要再 pom 文件中进行如下替换:
lib
目录中移除 log4j-slf4j-impl
的 jars 包;lib
目录中添加 logback-core
和 logback-classic
的 jars 包。Flink 发行版在 conf
目录中附带了以下 logback 配置文件,如果启用了 logback,则会自动使用这些文件:
logback-session.properties
:Flink 命令行在启动基于 Kubernetes/Yarn 的 Session 集群时使用;logback-console.properties
:Job-/TaskManagers 在前台模式运行时使用;logback.xml
: 命令行和 Job-/TaskManager 默认使用的日志配置。通过将相应的 Class 的类型对象作为参数调用 org.slf4j.LoggerFactory#LoggerFactory.getLogger
方法,可以创建一个 SLF4J 的 logger 实例。建议将 logger 字段设置为 private static final
修饰的类型。
示例:实例化 SLF4J 的 logger 对象,并在运行中打印日志
import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class Foobar { private static final Logger LOG = LoggerFactory.getLogger(Foobar.class); public static void main(String[] args) { LOG.info("Hello world!"); } }
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
为了最大限度地利用 SLF4J,建议使用其占位符机制。使用占位符,可以保证在该日志消息不回被保留时,避免不必要的字符串构造。
占位符的语法如下:
LOG.info("This message contains {} placeholders. {}", 2, "Yippie");
占位符也可以和要记录的异常一起使用:
catch(Exception exception){
LOG.error("An {} occurred.", "error", exception);
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。