我每次记录由Spark AccumulatorV2.
产生的指标时都有一个Spark作业
我用这样的文件附加程序定义了logback.xml
:
<configuration debug="true">
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>/tmp/testLog.file </file>
<append>true</append>
<encoder>
<pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
</encoder>
</appender>
<logger name="myMetrics">
<appender-ref ref="FILE" />
</logger>
</configuration>
然后在一个类中记录我的指标,我有:
val metricsLogger = LoggerFactory.getLogger("myMetrics")
但是,当我运行我的工作时,没有创建文件/tmp/testLog.file
。我怀疑自己的logback.xml被驱逐了,因为我在开始工作时看到以下消息:
Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
我已经为sl4j添加了阴影规则,但是我无法在正确的位置获取指标。我需要强制Spark使用我的logback.xml吗?
libraryDependencies ++= Seq(
"org.apache.spark" %% "spark-core" % sparkV % "provided",
"org.apache.spark" %% "spark-sql" % sparkV % "provided"
)
libraryDependencies += "ch.qos.logback" % "logback-classic" % "1.2.3"
assemblyShadeRules in assembly := Seq(
ShadeRule.rename("org.slf4j.**" -> "shaded.@1").inAll
)