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

set JAVA_OPTS=-XX:+TraceClassLoading -XX:+TraceClassUnloading -XX:+PrintGCDetails


日志打印在控制台中,但我无法使用重定向文件中的日志

startup.bat > logs.txt


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

最佳答案

解决此问题的最简单方法是如下更改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)

关于java - 了解tomcat中的类加载和卸载,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3682783/

10-12 01:47