файл log4j.properties не найден в пути к классам или проигнорирован

Я хочу войти в 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

Это работает хорошо. Почему без этих опций не работает?


person Franck Cussac    schedule 20.12.2017    source источник
comment
Какой инструмент сборки вы используете? Разве вместо этого путь не должен быть src/main/resources?   -  person Jacek Laskowski    schedule 21.12.2017
comment
Я также думаю, что log4j.appender.stdout.Target (верхний регистр) должен быть log4j.appender.stdout.target (нижний регистр).   -  person Jacek Laskowski    schedule 21.12.2017
comment
Log4j.properties работает хорошо, если я укажу путь явно. Проблема заключается в искре и его log4j.properties, который выбирается первым.   -  person Franck Cussac    schedule 21.12.2017
comment
Используйте -Dlog4j.debug и посмотрите, где log4j ищет свойства.   -  person Jacek Laskowski    schedule 21.12.2017
comment
$ SPARK_HOME / conf / log4j.properties   -  person Franck Cussac    schedule 22.12.2017


Ответы (1)


"Spark.driver.extraJavaOptions":

Значение по умолчанию: (нет)

A string of extra JVM options to pass to the driver. For instance, GC settings or other logging. Note that it is illegal to set maximum heap size (-Xmx) settings with this option. Maximum heap size settings can be set with spark.driver.memory in the cluster mode and through the --driver-memory command-line option in the client mode. 

Примечание. В клиентском режиме эту конфигурацию нельзя настраивать через SparkConf непосредственно в вашем приложении, поскольку в этот момент драйвер JVM уже запущен. Вместо этого установите это с помощью параметра командной строки --driver-java-options или в файле свойств по умолчанию.

[Для получения дополнительных сведений перейдите по этой ссылке: https://spark.apache.org/docs/latest/configuration.html]

person Sarfaraz Shaikh    schedule 25.07.2019