更改Tomcat日志记录无法按预期工作

时间:2018-08-29 09:50:57

标签: java tomcat logging

我的MSWindows上的Tomcat下运行的应用程序异常。为了设置系统以更好地了解失败原因,我尝试添加GC日志记录-但到目前为止,我的尝试都失败了。

最初,我在setenv.bat中设置了CATALINA_OPTS-但是在重新启动服务时将忽略它们。

然后我尝试使用Tomcat8w.exe添加选项:

{
  "age": "26",
  "email": "norman@futurestud.io",
  "isDeveloper": "true",
  "name": "Norman"
}

该服务无法以“错误4”启动。事件查看器显示:

  

Apache Tomcat 8.0 Tomcat8服务终止,出现以下特定于服务的错误:   系统无法打开文件。

我已经检查了路径,并且SYSTEM用户具有完全控制权。 Tomcat stderr日志中没有错误报告-只有一个条目:

-Xloggc:"C:\PerfLogs\gc-tomcat.log"
-XX:+UseGCLogFileRotation 
-XX:NumberOfGCLogFiles=10 
-XX:GCLogFileSize=5M 
-XX:+PrintGCDetails
-verbose:gc
-XX:+PrintGCDateStamps 
-XX:+HeapDumpOnCtrlBreak

我看不到其他日志文件中添加任何内容。

删除上面的选项将允许服务启动。将上面的配置与路径上的双引号一起使用不会产生任何影响。在启动服务之前创建初始日志文件没有任何影响。

如何启用GC日志记录?我如何找出当前失败的原因?

(不幸的是,不能迁移到更用户友好的操作系统)。

更新 我在common-daemon-YYYY-MM-DD.log中找到了更多日志条目:

Commons Daemon procrun stdout initialized

,如果相关的话:

[2018-08-29 11:04:52] [info]  [ 4068] Running 'Tomcat8' Service...
[2018-08-29 11:04:52] [info]  [ 2560] Starting service...
[2018-08-29 11:04:52] [error] [ 4200] CreateJavaVM Failed
[2018-08-29 11:04:52] [error] [ 4200] The system could not find the environment option that was entered.
[2018-08-29 11:04:52] [error] [ 2560] Failed to start Java
[2018-08-29 11:04:52] [error] [ 2560] ServiceStart returned 4
[2018-08-29 11:04:52] [info]  [ 4068] Run service finished.
[2018-08-29 11:04:52] [info]  [ 4068] Commons Daemon procrun finished

1 个答案:

答案 0 :(得分:0)

经过大量研究,我发现MSWindows jvm显然是Java世界中的第二流公民。根据{{​​3}},MSWindows Java引擎不支持日志轮换。从配置中删除以下选项使JVM可以从GC日志记录开始:

bash: syntax error near unexpected token `do'

为什么将此报告为“系统无法打开文件”,我不知道。

现在,我只需要弄清楚日志文件填满后会发生什么/如何防止这种情况。