记录配置
本地模式
在本地模式下,例如从 IDE 运行应用程序时,你可以照常配置 log4j
,即在类路径中使用 log4j.properties
。在 maven 中一个简单的方法是在 src/main/resources
文件夹中创建 log4j.properties
。这是一个例子:
log4j.rootLogger=INFO, console
# patterns:
# d = date
# c = class
# F = file
# p = priority (INFO, WARN, etc)
# x = NDC (nested diagnostic context) associated with the thread that generated the logging event
# m = message
# Log all infos in the console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{dd/MM/yyyy HH:mm:ss.SSS} %5p [%-10c] %m%n
# Log all infos in flink-app.log
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.file=flink-app.log
log4j.appender.file.append=false
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{dd/MM/yyyy HH:mm:ss.SSS} %5p [%-10c] %m%n
# suppress info messages from flink
log4j.logger.org.apache.flink=WARN
独立模式
在独立模式下,使用的实际配置不是
jar
文件中的配置。这是因为 Flink 拥有自己的配置文件,这些文件优先于你自己的配置文件。
默认文件 :Flink 附带以下默认属性文件:
log4j-cli.properties
:由 Flink 命令行客户端使用(例如flink run
)(不是在集群上执行的代码)log4j-yarn-session.properties
:启动 YARN 会话时由 Flink 命令行客户端使用(yarn-session.sh
)log4j.properties
:JobManager / Taskmanager 日志(独立和 YARN)
请注意,${log.file}
默认为 flink/log
。它可以在 flink-conf.yaml
中被覆盖,通过设置 env.log.dir
,
env.log.dir
定义保存 Flink 日志的目录。它必须是一条绝对的道路。
日志位置 :日志是本地的,即它们是在运行 JobManager / Taskmanager 的机器中生成的。
Yarn :在 Yarn 上运行 Flink 时,你必须依赖 Hadoop YARN 的日志记录功能。最有用的功能是 YARN 日志聚合 。要启用它,请在 yarn-site.xml file
中将 yarn.log-aggregation-enable
属性设置为 true
。启用后,你可以使用以下命令检索(失败的)YARN 会话的所有日志文件:
yarn logs -applicationId <application ID>
遗憾的是,日志仅在会话停止运行后可用,例如在失败后。