首页 > 解决方案 > spark主代码中的log4j

问题描述

我想根据log4j收集记录器,我可以得到hadoop记录器但不能得到主代码记录器。

附加拖车 - 1 log4j.properties

log4j.rootLogger=INFO, rolling
log4j.appender.rolling=org.apache.log4j.RollingFileAppender
log4j.appender.rolling.layout=org.apache.log4j.PatternLayout
log4j.appender.rolling.layout.conversionPattern=[%d] %p %m (%c)%n
log4j.appender.rolling.maxFileSize=50MB
log4j.appender.rolling.maxBackupIndex=5
log4j.appender.rolling.file=/home/spark.log
log4j.appender.rolling.encoding=UTF-8
log4j.logger.org.eclipse.jetty=WARN
log4j.logger.org.eclipse.jetty.util.component.AbstractLifeCycle=WARN
log4j.logger.org.apache.spark.repl.SparkIMain$exprTyper=WARN
log4j.logger.org.apache.spark.repl.SparkILoop$SparkILoopInterpreter=WARN
log4j.logger.com.test.main.Main=WARN 

附加拖车 - 2 com.test.main.Main

object Main {
    def main(args: Array[String]): Unit = {
       val logger = LogManager.getLogger(Main.getClass)
       logger.info("info\n")
       logger.warn("warn\n")
       logger.debug("DEBUG\n")
       logger.error("EEOR\n")

现在,我可以在 /home/spark.log 中获取 spark logger,例如

[2018-08-14 18:04:28,852] INFO 运行 Spark 版本 2.2.0.cloudera1 (org.apache.spark.SparkContext)
[2018-08-14 18:04:29,705] INFO 提交的应用程序:steaming_Test (org. apache.spark.SparkContext)

但主代码中没有记录器,例如

18:05:17.250 [main] 错误 com.sgm.bgdt.main.Main$ - EEOR

“ log4j.logger.com.test.main.Main=WARN ”是否有错误设置或我的主代码有问题?

PS。

这是我的火花提交

--driver-java-options "-Dlog4j.configuration=file:/path/log4j.properties
--conf "spark.executor.extraJavaOptions=-Dlog4j.configuration=file:/path/log4j.properties

标签: apache-sparklog4j

解决方案


推荐阅读