windows下tomcat控制台按天输出catalina.out日志-CSDN博客

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

windows下tomcat控制台按天输出catalina.out日志

windows服务器情况下无法和linux服务器一样启动web服务之后直接tail查看日志而windwos控制台的输出空间有限如果遇到大量错误的情况下console日志刷新太快无法看到首次错误是在哪里出现的会产生很多不必要的麻烦所以从网上查找了windows控制台信息输出到文件的方法记录一下。

catalina.日期.log
1、主要是记录tomcat启动时候的信息
2、启动的JVM参数以及操作系统等日志信息
3、没有使用log4j等日志机制系统的的错误信息与打印语句也在这个日志文件中记录
4、linux下所有的日志都在catalina.out中。

方法一

步骤1打开bin下面的startup.bat文件

把 call "%EXECUTABLE%" start %CMD_LINE_ARGS%
改为 call "%EXECUTABLE%" run %CMD_LINE_ARGS%
此修改不会弹出新的cmd窗口直接在本窗口运行

步骤2打开bin下面的catalina.bat文件(文件末尾)
在每个%ACTION%后面添加

>> %CATALINA_HOME%\logs\catalina.%date:~0,4%-%date:~5,2%-%date:~8,2%.out

生成的日志如下
在这里插入图片描述

结果
控制台不会打印运行日志(只有少量的信息)运行日志包括一些错误信息会存在./log目录下的日志文件中只能在文件里面看了。不利于维护人员直接判断项目是否启动成功。

方法二

步骤打开bin下面的startup.bat文件

把 call "%EXECUTABLE%" start %CMD_LINE_ARGS%
直接改为 call "%EXECUTABLE%" run %CMD_LINE_ARGS% >>%CATALINA_HOME%\logs\catalina.%date:~0,4%-%date:~5,2%-%date:~8,2%.out 2>&1

其中将start修改为run是修改tomcat的启动方式。在>>之后加的是在tomcat安装目录下的logs文件夹中生成catalina.年-月-日.out的日志存储文件。

修改完成后双击startup.bat启动tomcat服务器会发现命令窗口中没有内容这样就对了。
在这里插入图片描述
生成的日志如下
在这里插入图片描述

由于配置 run 启动方式导致catalina.bat文件的窗口名称配置已失效
只能去startup.bat文件里面重新配置
在这里插入图片描述

结果
命令窗口中直接什么内容都没有了同样不利于维护人员直接判断项目是否启动成功只能查看日志文件了解是否启动成功。

通过以上两种方法得知windows下的startup.bat 方式改为 run 以后
控制台是没有办法再输出内容的只能去生成的日志文件里面判断项目的启动情况
要么控制台打印没有日志存储
要么日志存储没有控制台打印
两者不能同时都有让人很无语。

有不有什么办法去实现呢最后终于找到了要通过tee.exe 去实现这个效果

在http://sourceforge.net/projects/unxutils/?source=dlp 下载UnxUtils.zip
请添加图片描述
解压后把UnxUtils\usr\local\wbin下的tee.exe 复制到windows\system32 里面即可

打开bin下面的startup.bat文件
在末尾加上 chcp 65001 且修改 call “%EXECUTABLE%” start %CMD_LINE_ARGS%
如下

chcp 65001

call "%EXECUTABLE%" run %CMD_LINE_ARGS% 2>&1 | tee %CATALINA_HOME%\logs\catalina.%Date:~0,0%%Date:~3,4%-%Date:~8,2%-%Date:~11,2%.out

如果执行不成功的话可能是cmd下无法执行chcp命令
出现这种报错chcp不是内部或外部命令,也不是可运行的程序就需要去配置环境变量

在系统变量PATH下添加路径C:\WINDOWS\system32最好去复制电脑上面的路径直接复制这里可能有符号转义
我这边环境为Windows10下的截图
在这里插入图片描述
如果是Windows xp 或者 Windows 7 的话记得前面加个;如果原来有了的话就不要加了
完整的为
;C:\WINDOWS\system32

该处的配置可能需要重启电脑才会生效重启我自己没有操作可能我之前就配置过了这个变量

最后我是实现了既可以日志存储又可以控制台打印

相关链接
https://blog.csdn.net/weixin_42250959/article/details/103474660
标题改为中文后标题乱码问题
https://blog.csdn.net/lixingecho/article/details/115945423
https://www.cnblogs.com/dannylinux/p/10873993.html
https://www.jianshu.com/p/22202f4268af
windwos下保存tomcat日志同时控制台输出
https://blog.csdn.net/itlijinpeng/article/details/129142114

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: windowsTomcat