2009-10-02 92 views
1

我有一个在Tomcat下运行的Web应用程序。作为Windows服务运行时的Tomcat日志记录

使用java.util.logging实现各种功能的记录。

当通过的startup.bat创建日志文件,并记录日志如预期运行Tomcat。

当使用相同的war文件作为windows服务运行时,日志的输出实际上不存在。 stdout.log和stderr.log中有一些(几乎没有)日志输出,但不是预期的结果。

这听起来对任何人都很熟悉吗?你采取了哪些措施来纠正它?

问候

+0

检查服务的属性 - 运行Windows启动Tomcat的命令是什么? – 2009-10-02 18:16:21

+0

服务开始调用org.apache.catalina.startup.Bootstrap,参数以JVM模式 – FacilityDerek 2009-10-07 09:35:53

回答

0

事实证明,这是一个配置问题。

当从Tomcat的的startup.bat开始将引用logging.properties conf目录。

当作为服务的JDK/JRE/lib目录logging.properties进场开始。

当作为Windows服务运行时,所有控制台输出重定向在Tomcat日志目录stdout.log。

试图捕捉自定义文件记录定制logging.properties文件,至今未能。

+1

-1为参数启动,当“作为服务启动时,jdk/jre/lib logging.properties发挥作用”。将Tomcat作为Windows Service运行时,使用“Monitor Tomcat”应用程序来配置日志记录。 – kgiannakakis 2009-10-07 09:49:18

+0

那么有没有办法配置日志记录使用log4j呢? – 2017-01-23 13:04:04

1

输出和错误日志文件应该在Tomcat的安装日志目录已创建。

要配置日志记录,请使用“配置Tomcat”应用程序。您可以在此设置错误级别和日志文件的位置。

0

确保Tomcat环境在两种情况下都是相同的。检查Tomcat服务编辑器中的路径和设置。不要使用标准Windows属性对话框进行服务,而是使用//ES//name启动tomcat.exe,其中name是服务的名称。

0

当tomcat作为服务启动时,其默认日志配置实际上会覆盖任何特定于应用程序的日志配置。正如Aaron建议设置配置的最佳方式是使用tomcatw // ES // tomcat_service_name,例如tomcat_service_name可以是Tomcat5,具体取决于您的安装首选项(也可以使用tomcatw,而不是tomcat - 这两个可执行文件都可以在C:\ Program Files \ Apache Software Foundation \ Tomcat 5.0 \ bin中找到)。此post解释了如何确保您使用正确的服务名称(如果对话框中没有值,则名称可能不正确)。

我会发布图片,但我没有足够的代表。在Java VM选项卡上,在Java选项中输入配置,例如-Dlog4j.configuration = service.log4j.properties

包含您的记录配置文件可以被放置在Tomcat服务器类目录,例如C:\ Program Files \ Apache Software Foundation \ Tomcat 5.0 \ server \ classes。

有几个地方可以放置日志配置文件。我最初尝试指定日志配置文件的完整路径,但log4j似乎只检查某些路径。正如post所述,将-Dlog4j.debug作为Java选项的第一行,您可以调试log4j正在做什么。服务器类目录被列为一个可能的搜索路径。

创建log4j.properties文件时,将其命名为log4j.properties以外的内容,例如, service.log4j.properties。命名它log4j.properties存在一个风险,即可以找到一个特定于应用程序的log4j.properties文件,这个文件可以覆盖你的配置,但是随后会被tomcat服务忽略。

相关问题