1.问题情况
分为spark-core和spark-sql两种情况:
一开始在idea中写spark-core代码时出现的是红色日志, 一般直接在代码前面输入这两行即可解决:
import org.apache.log4j.{Level, Logger} //导包
Logger.getLogger("org").setLevel(Level.ERROR) //只输出错误的日志信息
后来随着学习的深入, 开始写spark-sql代码, 导入spark-sql依赖后发现: 上面的代码已经无法解决去掉日志(白色)的情况, 所以到网上去寻找解决的办法.
2.解决问题
大多数通用的办法是在maven项目中的resources目录下创建一个log4j.properties文件, 然后在里面复制一段内容后再运行就可以去掉spark日志, 但我的并没有成功, 依旧会输出日志信息.
3.最终从源头解决
然后注意到每次输出日志信息, 第一行都会有一句爆红: Using Spark's default log4j profile: org/apache/spark/log4j2-defaults.properties
才明白到resources目录下创建的log4j.properties文件是对默认文件的更改.
为了防止自己创建的log4j.properties文件里的内容和依赖包里系统默认文件里的内容不一致, 所以尝试找源头文件, 就发现了这篇宝藏文章:
原文链接:https://blog.csdn.net/castomere/article/details/105073886
里面有找到默认文件路径的方法
根据我的日志报错提示, 我找到了我的日志默认文件:
把此文件复制到resources目录下, 将-defaults去掉, 变成如下文件:
打开此文件, 在里面的内容中找到rootLogger.level, 把rootLogger.level = INFO 改为rootLogger.level = ERROR 即可.
再重新运行代码就不会再出现日志信息了!
完工!