windows下如何获取Tomcat的控制台输出(转)

本文介绍了一种在Windows平台上将Tomcat控制台输出重定向到文件的方法,通过修改catalina.bat和startup.bat文件实现日志记录,便于调试与分析。
我们使用tomcat开发的时候,一般是在windows平台下.有时控制台中输出的调试和测试信息很多,

由于屏幕的滚动,不能及时看清和分析输出的信息.那么,有没有简单的方法来获取这些信息呢?

按照习惯,先在google上搜索了一下,没有发现有价值的信息,就只能自己想办法了.

在linux下,tomcat的控制台输出被自动重定向输出到logs目录下的catalina.out文件中.分析一下

文件catalina.sh发现如下的片断.

"$_RUNJAVA" $JAVA_OPTS $CATALINA_OPTS \

-Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \

-Dcatalina.base="$CATALINA_BASE" \

-Dcatalina.home="$CATALINA_HOME" \

-Djava.io.tmpdir="$CATALINA_TMPDIR" \

org.apache.catalina.startup.Bootstrap "$@" start \

>> "$CATALINA_BASE"/logs/catalina.out 2>&1 &

原来在linux下执行的时候,在执行参数的最后加入了重定向设置.

在windows下,同样也有命令管道的重定向机制,于是就在catalina.bat中找到了相应的执行行(179行)



%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%

改为

%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION% >>"%CATALINA_BASE%"\logs\catalina.txt

然后点击startup.bat启动Tomcat,在logs下虽然生成了catalina.txt,但始终是0k大小,没有任何的内容. 这是怎么回事呢?

经过进一步分析发现,执行startup的时候,重新打开了一个windows窗口,这种情况下,有可能造成重定向的失败.这和linux下是不同的.单独执行一下catalina.bat发现如下的提示:

Using CATALINA_BASE: D:\jakarta-tomcat-5.0.25

Using CATALINA_HOME: D:\jakarta-tomcat-5.0.25

Using CATALINA_TMPDIR: D:\jakarta-tomcat-5.0.25\temp

Using JAVA_HOME: C:\Borland\JBuilder2005\jdk1.4

Usage: catalina ( commands ... )

commands:

debug Start Catalina in a debugger

debug -security Debug Catalina with a security manager

jpda start Start Catalina under JPDA debugger

run Start Catalina in the current window

run -security Start in the current window with security manager

start Start Catalina in a separate window

start -security Start in a separate window with security manager

stop Stop Catalina

version What version of tomcat are you running?

于是修改catalina.bat第42行

call "%EXECUTABLE%" start %CMD_LINE_ARGS%



call "%EXECUTABLE%" run %CMD_LINE_ARGS%

然后在此启动tomcat,再次查看catalina.txt,预期的信息果然如约而至!

其实更简单的更改方法是:直接修改catalina.bat的第42行为

call "%EXECUTABLE%" run %CMD_LINE_ARGS% >> ..\logs\catalina.txt

当不需要的时候直接把..\logs\catalina.txt去掉就可以了,改起来很方便快捷. 呵呵,看样子有时候自己动一下脑筋,还是比直接从google获得答案更有乐趣!



注:

很管用,就是由于tomcat版本问题,现在已经不是179行了,同时42行的内容也到了startup.bat里边了,不过还是非常感谢!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值