【问题标题】:How to use Java Logging API in Servlet Application with Maven如何通过 Maven 在 Servlet 应用程序中使用 Java Logging API
【发布时间】:2011-08-02 08:52:23
【问题描述】:

我在一个简单的 Servlet 应用程序中使用 Java Logging API,该应用程序使用 Maven 并将其部署在 Tomcat 上。我想将日志写入文件。虽然我已经将我的 logging.properties 放在 source\main\resources 和 source\main\webapp\WEB-INF 中,但似乎没有读取此文件。没有输出日志文件。

如果我更改 JRE lib 中的文件 logging.properties,则会正确创建日志文件。

如何在不修改 JRE lib 中的 logging.properties 的情况下使用 Java Logging API 将日志写入文件?

P/S:我使用过 log4j,这对我来说似乎很容易。我正在尝试使用 Java Logging API,因为我很好奇为什么还有很多人仍在使用它,包括 GoogleApp Engine。

对于像我这样的新手,以下是问题的总结:
1. 将 logging.properties 放在 WEB-INF\classes 下,查看 tomcat docs 获取此文件的示例
2. 如果手动部署应用程序(即把 .war 放在 Tomcat 的 webapps 文件夹中),它应该可以工作 正确
3. 如果应用程序是从 Netbeans 部署的,它应该可以正常工作
4. 如果应用程序是从 Eclipse 部署的,请在其启动配置的参数选项卡下添加以下内容
-Dcatalina.base=%PATH_TO_TOMCAT_INSTALLATION%
-Dcatalina.home=%PATH_TO_TOMCAT_INSTALLATION%
-Djava.util.logging.config.file=%PATH_TO_TOMCAT_INSTALLATION%\conf\logging.properties"
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
看来Eclipse使用自己的方式启动Tomcat,而不是执行startup.bat。

【问题讨论】:

  • 顺便说一句,您可以使用slf4j 将java日志API调用转发到log4j

标签: java api logging


【解决方案1】:

Tomcat 文档有一章介绍如何为您的服务器配置日志记录属性: Logging in Tomcat

【讨论】:

  • 感谢@edalorzo,正确的位置应该在WEB-INF\classes下。
猜你喜欢
  • 2017-09-24
  • 2020-03-12
  • 2019-11-20
  • 2013-07-28
  • 2012-11-19
  • 2013-04-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多