Spark 3.3如何禁用INFO日志?原log4j.properties配置失效求助
Spark 3.3升级后log4j.properties失效的解决办法
Spark 3.x版本起默认采用Log4j 2作为日志框架,不再兼容旧版Log4j 1.x的log4j.properties配置文件,这就是你升级后配置失效的核心原因。以下是具体解决步骤:
1. 替换配置文件格式
将原有的log4j.properties重命名为log4j2.properties,并将内容转换为Log4j 2的语法格式,对应你原来的需求,转换后的配置如下:
# 根日志级别及输出目标 rootLogger.level = ERROR rootLogger.appenderRef.console.ref = ConsoleAppender # 控制台输出配置 appender.console.type = Console appender.console.name = ConsoleAppender appender.console.target = SYSTEM_ERR appender.console.layout.type = PatternLayout appender.console.layout.pattern = %d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n # 指定Spark包的日志级别 logger.spark.name = org.apache.spark logger.spark.level = WARN
2. 确保配置文件生效
- 本地运行Spark时,将
log4j2.properties放到Spark安装目录的conf文件夹下; - 提交集群任务时,可通过
--files分发配置文件,同时设置JVM参数指定配置路径:spark-submit \ --files log4j2.properties \ --conf "spark.driver.extraJavaOptions=-Dlog4j.configurationFile=log4j2.properties" \ --conf "spark.executor.extraJavaOptions=-Dlog4j.configurationFile=log4j2.properties" \ your-app.jar
额外说明
如果项目依赖中仍存在Log4j 1.x的jar包,可能引发日志冲突,建议排除Log4j 1.x依赖,确保仅引入Log4j 2相关依赖。
内容的提问来源于stack exchange,提问作者Danilo Rodrigues
相关产品推荐
相关产品推荐

