windows下tomcat默认并不会把控制台输出的信息都记录进日志文件。但是在生产环境中,出现问题时,控制台的日志输出是无法查据的,因此需要将日志记录下来。
解决方法:
输出日志到文件
修改tomcat的bin目录下的startup.bat文件,执行此项修改后日志会输出到文件中,在控制台中不会再输出
call "%EXECUTABLE%" start %CMD_LINE_ARGS% 换成 call "%EXECUTABLE%" run %CMD_LINE_ARGS%
其中,执行start会重新打开新的cmd窗口运行catalina.bat,并且在新的窗口中打印日志信息,即我们看到的console,修改strat为run,即不弹出新的cmd窗口,直接在本窗口运行。
指定输出日志的文件,在bin目录下的catalina.bat中,在四个%ACTION%后面加上
>>%CATALINA_HOME%\logs\catalina.%DATE%.out
这样,在tomcat启动时,会在logs文件夹下生成 catalina.%%Y-%%m-%%d.out(如catalina.2018-11-11.out)作为日志文件。
按照日期切割日志文件
按照上面步骤生成的日志文件有一个问题,就是日志文件只会生成一次,即tomcat启动时,如果tomcat启动后一直运行的话,该文件会一直追加,只有tomcat重启才会重新生成。文件太大和没有切分,对后期维护的阅读和查找造成不便。
引入cronolog.exe解决该问题:
把cronolog.exe放在tomcat的bin目录下,同时修改bin目录下的catalina.bat文件,在四个%ACTION%后面把之前追加的修改为
|%CATALINA_HOME%\bin\cronolog.exe %CATALINA_HOME%\logs\catalina.%%Y-%%m-%%d.out
这样日志文件就会按照日期进行自动生成了。