記錄配置
本地模式
在本地模式下,例如從 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>
遺憾的是,日誌僅在會話停止執行後可用,例如在失敗後。