Я хочу войти в maprDB, чтобы получить искровое задание с log4j. Я написал собственный аппендер, и вот мой log4j.properties:
log4j.rootLogger = ИНФОРМАЦИЯ, стандартный вывод
log4j.appender.stdout = org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target = System.out log4j.appender.stdout.layout = org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern =% д {гггг-ММ-дд ЧЧ: мм: сс}% -5p% c {1}:% L -% m% n
log4j.appender.MapRDB = com.datalake.maprdblogger.Appender
log4j.logger.testest = ПРЕДУПРЕЖДЕНИЕ, MapRDB
Поместите в каталог src / main / resources
Это мой основной метод:
object App {
val log: Logger = org.apache.log4j.LogManager.getLogger(getClass.getName)
def main(args: Array[String]): Unit = {
// custom appender
LogHelper.fillLoggerContext("dev", "test", "test", "testest", "")
log.error("bad record.")
}
}
Когда я запускаю свой spark-submit без какой-либо конфигурации, ничего не происходит. Как будто моего log4j.properties здесь не было.
Если я разверну файл log4j.properties вручную и добавлю параметры:
--conf spark.driver.extraJavaOptions = -Dlog4j.configuration = файл: /PATH_TO_FILE/log4j.properties
--conf spark.executor.extraJavaOptions = -Dlog4j.configuration = файл: /PATH_TO_FILE/log4j.properties
Это работает хорошо. Почему без этих опций не работает?
src/main/resources
? - person Jacek Laskowski   schedule 21.12.2017log4j.appender.stdout.Target
(верхний регистр) должен бытьlog4j.appender.stdout.target
(нижний регистр). - person Jacek Laskowski   schedule 21.12.2017-Dlog4j.debug
и посмотрите, где log4j ищет свойства. - person Jacek Laskowski   schedule 21.12.2017