Java 了解tomcat中的类加载和卸载

Java 了解tomcat中的类加载和卸载,java,tomcat,redirect,stdout,Java,Tomcat,Redirect,Stdout,我正在catalina.bat中指定以下命令: set JAVA_OPTS=-XX:+TraceClassLoading -XX:+TraceClassUnloading -XX:+PrintGCDetails 日志在控制台中打印,但我无法使用重定向文件中的日志 startup.bat > logs.txt 有人能告诉我如何保存/跟踪控制台日志吗?最简单的方法是更改catalina.bat,如下所示: startup.bat > ..\logs\catalina.out 您需要

我正在
catalina.bat
中指定以下命令:

set JAVA_OPTS=-XX:+TraceClassLoading -XX:+TraceClassUnloading -XX:+PrintGCDetails
日志在控制台中打印,但我无法使用重定向文件中的日志

startup.bat > logs.txt

有人能告诉我如何保存/跟踪控制台日志吗?

最简单的方法是更改
catalina.bat
,如下所示:

startup.bat > ..\logs\catalina.out
您需要删除所有“start”命令(负责在单独的窗口中启动tomcat)

例如:

更改:

set _EXECJAVA=start "%TITLE%" %_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)

如果您想在单独的文件中单独查看GC日志数据,那么将此标志添加到JAVA_选项中也很简单

-Xloggc:filename
因此,在windows上,将c:\gc.log作为

-Xloggc:c:\gc.log
“脚本”实用程序(cygwin)可以帮助您

步骤
1.打开命令提示符。
2.通过提供文件名来运行此实用程序。
3.运行.bat文件以启动tomcat。