apache-spark - 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
解决方案
推荐阅读
- java - Apache Ignite 2.7.0 在 GridFutureAdapter.get0() 中花费了大量时间
- html - 如何更改 div 类“col-sm-9”的宽度和高度大小?
- node.js - 如何使 socket.io 在所有路由中都可以访问
- python-3.x - 我应该在哪里修改我的树遍历代码以避免未知信号 11 错误?
- symfony4 - 如何在 flashbag 中显示文件异常(try/catch)?
- reactjs - reactstrap 和 Chrome 自动填充将密码放入电子邮件输入中
- amazon-web-services - AWS MSK Kafka 不支持 Ubuntu 客户端 awscli?
- c - 了解stm8s反汇编中的功能?
- c++ - 将变量传递给 lambda
- php - 在异常情况下继续 Laravel 工作