【发布时间】: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