动态设置日志级别
配置场景
在某些场景下,当任务已经启动后,用户想要修改日志级别以定位问题或者查看想要的信息。
用户可以在进程启动前,在进程的JVM参数中增加参数“-Dlog4j.configuration.watch=true”来打开动态设置日志级别的功能。进程启动后,就可以通过修改进程对应的log4j配置文件,来调整日志打印级别。
目前支持动态设置日志级别功能的有:Driver日志、Executor日志、AM日志、JobHistory日志、JDBCServer日志。
允许设置的日志级别是:FATAL,ERROR,WARN,INFO,DEBUG,TRACE和ALL。
配置描述
在进程对应的JVM参数配置项中增加以下参数。
参数 |
描述 |
默认值 |
---|---|---|
-Dlog4j.configuration.watch |
进程JVM参数,设置成“true”用于打开动态设置日志级别功能。 |
未配置,即为false。 |
Driver、Executor、AM进程的JVM参数如表2所示。在Spark客户端的配置文件“spark-defaults.conf”中进行配置。Driver、Executor、AM进程的日志级别在对应的JVM参数中的“-Dlog4j.configuration”参数指定的log4j配置文件中设置。
参数 |
说明 |
默认日志级别 |
---|---|---|
spark.driver.extraJavaOptions |
Driver的JVM参数。 |
INFO |
spark.executor.extraJavaOptions |
Executor的JVM参数。 |
INFO |
spark.yarn.am.extraJavaOptions |
AM的JVM参数。 |
INFO |
JobHistory Server和JDBCServer的JVM参数如表3所示。在服务端配置文件“ENV_VARS”中进行配置。JobHistory Server和JDBCServer的日志级别在服务端配置文件“log4j.properties”中设置。
参数 |
说明 |
默认日志级别 |
---|---|---|
GC_OPTS |
JobHistory Server的JVM参数。 |
INFO |
SPARK_SUBMIT_OPTS |
JDBCServer的JVM参数。 |
INFO |
示例:
为了动态修改Executor日志级别为DEBUG,在进程启动之前,修改“spark-defaults.conf”文件中的Executor的JVM参数“spark.executor.extraJavaOptions”,增加如下配置:
-Dlog4j.configuration.watch=true
提交用户应用后,修改“spark.executor.extraJavaOptions”中“-Dlog4j.configuration”参数指定的log4j日志配置文件(例如:“-Dlog4j.configuration=file:${BIGDATA_HOME}/FusionInsight_Spark2x_8.1.2.2/install/FusionInsight-Spark2x-3.1.1/spark/conf/log4j-executor.properties”)中的日志级别为DEBUG,如下所示:
log4j.rootCategory=DEBUG, sparklog
DEBUG级别生效会有一定的时延。