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

新手上路,请多包涵

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

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

在构造函数中:

 PropertyConfigurator.configure("log4j.properties");

在功能中:

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

但是,这是错误信息(实际上,我已经尝试把它放在我能意识到的几乎每个目录中):

 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 获得

原文由 mono 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 379
1 个回答

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

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

希望这会有所帮助。

rgds

原文由 miss 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题