在Linux系统中,Tomcat 启动后默认将很多信息都写入到catalina.out 文件中,我们可以通过tail -f catalina.out 来跟踪Tomcat 和相关应用运行的情况。 在windows下,我们使用startup.bat启动Tomcat以后,会发现catalina日志与Linux记录的内容有很大区别,大多信息只输出到屏幕而没有记录到catalina.out里面。 本文的内容就是要实现在windows下,将相关的控制台输出记录到后台的catalina.out文件中以便将来查看。 关于在Windows2003下如何实现类似Linux下tail命令功能的方法,请见让windows也拥有tail功能一文
把控制台的信息输出到%CATALINA_BASE%\logs\catalina.out里:
1、打开bin下面的startup.bat文件,把call "%EXECUTABLE%" start %CMD_LINE_ARGS%
改为call "%EXECUTABLE%" run %CMD_LINE_ARGS% 。
2、打开bin下面的catalina.bat文件,会发现共有4处 %ACTION% ,在后面分别加上
>> %CATALINA_HOME%\logs\catalina.out 。
重启tomcat,就会发现在logs文件夹下出现了catalina.out文件,把原来控制台的信息全写进去了。
但输出的这个catalina.out文件,是一直增长的,也就是文件会越来越大。
3
. 如果要每次启动的时候重新输入不同的文件,可对上面代码进行修改如下:
call "%EXECUTABLE%" run %CMD_LINE_ARGS% >> ..\logs\catalina%Date:~0,10%.log
,%DATE:~0,10%是系统时间截取,有的系统可能不是这样截取的,你可以用echo %DATE%命令看一下结果,0是起始位置,10时长度,根据结果来截取一下)
添加这行的目的是让tomcat把控制台的信息都输出到
..\logs\xxx_%DATE:~0,10%.log
call "%EXECUTABLE%" run %CMD_LINE_ARGS% >> ..\logs\catalina%Date:~0,10%.log
,%DATE:~0,10%是系统时间截取,有的系统可能不是这样截取的,你可以用echo %DATE%命令看一下结果,0是起始位置,10时长度,根据结果来截取一下)
添加这行的目的是让tomcat把控制台的信息都输出到
..\logs\xxx_%DATE:~0,10%.log
linux
JAVA_HOME/BIN下 :
堆栈输出
./jmap -dump:format=b,file=heap.hprof 4611
./jstack 4611 > thread.txt
./jstack 4611 > thread.txt
tomcat下调整jvm内存并打印GC回收日志
catalina.sh
JAVA_OPTS="-server -Xms512m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=128m -XX:+PrintGCDetails -Xloggc:/opt/apache-tomcat-7.0.81/logs/tomcat_gc.log"