Я пытаюсь запустить приложение java из командной строки с надеждой, что он подберет конфигурационные файлы log4j в другой папке. Вот моя структура папок:log4j не загружает пользовательские свойства config
/app
-> приложение основной папки/app/config
-> хранит пользовательские конфигурационные файлы, включая log4j/app/lib
-> хранит все банки
Однако, когда я пытаюсь запустить программу из /app
для некоторого reaso п log4j не инициализируются должным образом:
-bash-4.2# pwd
/app
-bash-4.2# java -cp config:lib/* -Xmx1024M className
log4j:WARN No appenders could be found for logger(org.springframework.beans.factory.xml.XmlBeanDefinitionReader).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Удивительно, но если перенести папку конфигурации в /lib
, а затем попытаться запустить программу Java оттуда, все это, кажется, работает:
(обновлено структура папок):
/app
-> приложение базовой папки/app/lib
-> хранит все банки/app/lib/config
-> хранит пользовательские конфигурационные файлы, включая log4j
Выход:
-bash-4.2# pwd
/app/lib
-bash-4.2# java -cp config:* -Xmx1024M className
<Expected log message now shows up>
Внутри моего кода я использовал PropertyConfigurator
для загрузки файла конфигурации:
PropertyConfigurator.configureAndWatch(loggingConfigFile)
Где logProperties
is def INED в
val loggingConfigFile = "config/custom.logging.properties"
Первоначально я думал, что проблема с первым сценарием был с какой-то Pathing вопроса, однако при печати из System.getProperty("user.dir")
во время выполнения, кажется, что программа действительно работает под /app
и что он должен быть в состоянии загрузить файл конфигурации из определенного пути (т.е. /app/config/custom.logging.properties
). Что-то не так с настройкой?