我应该把log4j.properties文件放在哪里?

2022-08-31 07:41:52

我使用netbeans 6.7.1和glassfish v2.1编写了一个Web服务项目,将log4j.properties放在项目的根目录下并使用:

static Logger logger = Logger.getLogger(MyClass.class);

在构造函数中:

PropertyConfigurator.configure("log4j.properties");

和函数中:

logger.info("...");
logger.error("...");
// ...

但是,这是错误信息(实际上,我试图把它放在我能意识到的几乎每个dir上):

log4j:ERROR Could not read configuration file [log4j.properties].
java.io.FileNotFoundException: log4j.properties (The system cannot find the file specified)
        at java.io.FileInputStream.open(Native Method)
        at java.io.FileInputStream.<init>(FileInputStream.java:106)
        at java.io.FileInputStream.<init>(FileInputStream.java:66)
        at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:297)
        at org.apache.log4j.PropertyConfigurator.configure(PropertyConfigurator.java:315)
        at com.corp.ors.demo.OrsDemo.main(OrisDemo.java:228)
log4j:ERROR Ignoring configuration file [log4j.properties].
log4j:WARN No appenders could be found for logger (com.corp.ors.demo.OrsDemo).
log4j:WARN Please initialize the log4j system properly.

示例项目可以从 http://www.91files.com/?N3F0QGQPWMDGPBRN0QA8


答案 1

我知道回答这个问题有点晚了,也许你已经找到了解决方案,但是我正在发布我发现的解决方案(在我谷歌搜索了很多之后),所以它可能会有所帮助:

  1. 将 log4j.properties 放在 WEB-INF\classes 下,如前所述,在此线程中如前所述。
  2. 将 log4j-xx.jar 放在 WEB-INF\lib 下
  3. 测试 log4j 是否已加载:在 tomcat 的 java 选项末尾添加-Dlog4j.debug

希望这会有所帮助。

rgds


答案 2

如前所述,log4j.properties应该在类路径中包含的目录中,我想补充一点,在一个mavenized项目中,一个好地方可以是src/main/resources/log4j.properties


推荐