【问题标题】:Knowing class loading and unloading in tomcat了解tomcat中的类加载和卸载
【发布时间】:2010-09-10 07:03:20
【问题描述】:
我在catalina.bat中指定以下命令:
set JAVA_OPTS=-XX:+TraceClassLoading -XX:+TraceClassUnloading -XX:+PrintGCDetails
日志打印在控制台中,但我无法使用
重定向文件中的日志
startup.bat > logs.txt
谁能告诉我如何保存/跟踪控制台日志?
【问题讨论】:
标签:
java
tomcat
redirect
stdout
【解决方案1】:
解决此问题的最简单方法是将catalina.bat 更改如下:
您需要删除所有“启动”命令(负责在单独的窗口中启动 tomcat)。
例子:
变化:
set _EXECJAVA=start "%TITLE%" %_RUNJAVA%
到
set _EXECJAVA=%_RUNJAVA%
您需要更改所有匹配项。
完成此更改后,您可以按如下方式重定向标准输出:
startup.bat > ..\logs\catalina.out
另一种选择是创建您自己的启动文件,例如mystartup.bat,其中包含以下命令:
java %JAVA_OPTS% -Djava.util.logging.config.file="%TOMCAT_HOME%\conf\logging.properties" -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs="%TOMCAT_HOME%\endorsed" -classpath "%TOMCAT_HOME%\bin\bootstrap.jar" -Dcatalina.base="%TOMCAT_HOME%" -Dcatalina.home="%TOMCAT_HOME%" -Djava.io.tmpdir="%TOMCAT_HOME%\temp" org.apache.catalina.startup.Bootstrap start
并执行它:
mystartup.bat > ..\logs\catalina.out
(谢天谢地,这个问题在 UNIX 中不存在,因为 catalina.sh 脚本会自动将 stdout/stderr 重定向到 $CATALINA_OUT)
【解决方案2】:
如果您想在单独的文件中单独查看 GC 记录数据,也可以简单地将此标志添加到您的 JAVA_OPTS
-Xloggc:filename
所以在 windows 上,写入 c:\gc.log 为
-Xloggc:c:\gc.log
【解决方案3】:
“脚本”实用程序 (cygwin) 可以帮助您。
步骤
1. 打开命令提示符。
2. 通过提供文件名运行此实用程序。
3.运行.bat文件启动tomcat。