scala - 如何更改spark中的日志级别?

标签 scala apache-spark logging log4j

我尝试了所有这些方法,但没有任何效果:

在 log4j 文件中 -

log4j.logger.org=OFF

log4j.rootCategory=ERROR, console
log4j.rootCategory=OFF, console

在代码中:

#option 1
Logger.getLogger("org.apache.spark").setLevel(Level.OFF)

#option 2
sparkContext.setLogLevel("OFF")

#option 3
val rootLogger: Logger = Logger.getRootLogger()
rootLogger.setLevel(Level.OFF)

是的,还尝试将其放在 Spark 上下文对象之后。似乎没有任何效果。
我缺少什么? 或者还有其他方法来设置日志级别吗?

最佳答案

你可以从一开始就找到这些日志,这意味着我们需要通过logback而不是log4j来设置日志配置。

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/C:/Users/linzi/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/Users/linzi/.m2/repository/org/slf4j/slf4j-log4j12/1.7.26/slf4j-log4j12-1.7.26.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder]

Add as logback.xml setting as below:

<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
    <layout class="ch.qos.logback.classic.PatternLayout">
        <Pattern>
            %d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n
        </Pattern>
    </layout>
</appender>

<logger name="com.mkyong" level="debug" additivity="false">
    <appender-ref ref="CONSOLE"/>
</logger>

<root level="error">
    <appender-ref ref="CONSOLE"/>
</root>

关于scala - 如何更改spark中的日志级别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59848344/

相关文章:

scala - groupByKey 与aggregateByKey - 差异究竟来自哪里?

logging - 如何使用格式、参数和抛出进行日志记录?

logging - 日志消息风格指南

scala - scala Spark 中的 RDD 过滤器

scala - select/drop 并没有真正删除该列?

java - 我们可以使用scala来调试Java程序吗

git - 如何将git merge 失败输出到文件

java - 在 Scala 中使用 java 迭代器

apache-spark - Apache Spark : Get the first and last row of each partition

angularjs - Apache zeppelin - 使用 Angular 和 zeppelin 解释器的变量范围