在web项目调试期间,时常需要查看输出的调试信息,例如当Hibernate设置为显示SQL语句时,每次运行的SQL语句会输出到终端,另外有时需要在代码中插入一些输出语句,以方便掌握运行情况,但当插入System.out.println(....)这样的控制台输出语句时,在终端是不能直接看到的。
在tomcat中,默认将终端输出信息输出到
$CATALINA_HOME/logs/catalina.out
其中$CATALINA_HOME是tomcat的安装目录。
tomcat启动后,该文件每秒都会更新一次,并且像其中输入日志信息,所以如果用直接打开的方式查看文件内容,由于文件在不断刷新,往往难以实现。我们希望查看到动态的日志内容,有两种方式:
1.方式一
进入tomcat安装路径的bin目录中,运行sh catalina.sh run命令,将在终端动态显示catalina.out的内容
2.方式二
进入上述的安装目录下的logs目录中,执行如下命令
tail -f catalina.out
Tomcat控制台日志输出到文件的方法
startup.bat中修改
call "%EXECUTABLE%" start %CMD_LINE_ARGS%
为
call "%EXECUTABLE%" run %CMD_LINE_ARGS% (>> ../logs/detailLog.%DATE:~0,10%.log )
这样控制台就不会输出日志文件了,让catalina.bat去决定日志输出在哪里吧
在catalina.bat中寻找以%ACTION%结尾的四处,每处%ACTION%后面添加 >> ../logs/detailLog.%DATE:~0,10%.log
detailLog是我自己起的名字,大家可以随意更改,但是注意不要与默认日志文件冲突,否则启动会报个错。那%DATE:~0,10%是用来截取系统时间的(这里应该注意系统生成的时间格式问题,如果是2013/04/02则会出错,请确保系统时间格式)。在我的服务器上echo %DATE%,显示出的是“2013-04-02 星期二”,截取0-10位,也就是“2013-04-02”,所以今天产生的log文件名字应该是 detailLog.2013-04-02.log
这样再去双击startup.bat,就会发现控制台启动后不再输出日志文件。再去查看detailLog.2013-04-02.log,会发现日志都在里面。那下面的工作,就是如何简单的将日志文件显示出来了。
更改系统日期格式在
桌面右下角日期和时间设置---更改日历设置-----日期选项卡下的日期格式下的短日期下拉选择框修改
下载UnxUtils https://sourceforge.net/projects/unxutils/
解压 把UnxUtils/usr/local/wbin加到系统环境变量Path
打开cmd,输入tail --help