一、windows设置tomcat控制台日志保存到文件(控制台将不在输出日志)
在Linux系统中,Tomcat 启动后默认将很多信息都写入到 catalina.out 文件中,我们可以通过tail -f catalina.out 来跟踪Tomcat 和相关应用运行的情况。 在windows下,我们使用startup.bat启动Tomcat以后,会发现catalina日志与Linux记录的内容有很大区别,大多信息只输出到屏幕而没有记录到catalina.out里面。 本文的内容就是要实现在windows下,将相关的控制台输出记录到后台的catalina.out文件中以便将来查看。
把控制台的信息输出到%CATALINA_BASE%\logs\catalina.out里:
1、打开bin下面的 startup.bat文件,把最下面一行的call "%EXECUTABLE%" start %CMD_LINE_ARGS%
改为 call "%EXECUTABLE%" run %CMD_LINE_ARGS%
注:上面这样设置之后,运行tomcat后,日志就不会实时显示到tomcat运行窗口了。
2、打开bin下面的 catalina.bat文件,会发现文件里共有4处 %ACTION% ,在后面分别加上
>> %CATALINA_HOME%\logs\catalina.out
注:windows中反斜杠和 linux是反的
重启tomcat,就会发现在logs文件夹下出现了catalina.out文件,把原来控制台的信息全写进去了。
但输出的这个catalina.out文件,是一直增长的,也就是文件会越来越大。
提示:按照上面的修改,tomcat所有的日志都会写入到logs/catalina.out文件内,如果想要按天来生成日志文件,
可以在 %ACTION% 后添加 >> %CATALINA_HOME%/logs/catalina.%date:~0,4%-%date:~5,2%-%date:~8,2%.out(linux系统)
>> %CATALINA_HOME%\logs\catalina.%date:~0,4%-%date:~5,2%-%date:~8,2%.out(windows系统)
生成的格式为 catalina.yyyy-mm-dd.out(yyyy代表4位年份,mm代表为2位月份,dd代表两位日期)
这种配置方式不会自动每天生成新的catalina.xxxx-xx-xx.out文件,要重新启动tomcat会才回生成,坑啊
如果要自动实现按天生成 catalina.xxxx-xx-xx.out文件,需要下载日志分割工具cronolog-1.6.1-win32.zip。
网盘下载链接:
链接:https://pan.baidu.com/s/1MJQ7IFdYFcmn4eH1qJ2EQg
提取码:aag8
然后解压之后将cronolog.exe复制到tomcat的bin目录下,将catalina.bat之前 %ACTION% 后的内容修改为:|%CATALINA_HOME%\bin\cronolog.exe %CATALINA_HOME%\logs\catalina.%%Y-%%m-%%d.out
二、启动tomcat中文乱码解决办法
将目录切换到tomcat的conf目录下:
找到logging.properties文件,打开找到如下配置项:
java.util.logging.ConsoleHandler.encoding = UTF-8
将 UTF-8 修改为 GBK,修改后的效果为:
java.util.logging.ConsoleHandler.encoding = GBK
保存后,重启tomcat!