log4j没有加载自定义属性配置

时间:2016-11-10 03:41:14

标签: java logging path log4j config

我试图从命令行启动一个java应用程序,希望它能够在另一个文件夹中获取log4j配置文件。这是我的文件夹结构:

  • /app - >应用程序基础文件夹

  • /app/config - >存储自定义配置文件,包括log4j

  • /app/lib - >存放所有的罐子

但是当我尝试从/app运行程序时出于某种原因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定义为

val loggingConfigFile = "config/custom.logging.properties"

最初我认为第一种情况的问题是某种路径问题,但是在运行时打印System.getProperty("user.dir")时,程序似乎确实在/app下运行并且它应该能够从定义的路径加载配置文件(即/app/config/custom.logging.properties)。设置有什么问题吗?

0 个答案:

没有答案