一、配置tomcat将多个日志输出到同一个文件
1、conf/logging.properties详解
#可配置项(5类日志):catalina、localhost、manager、admin、host-manager
handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler,3manager.org.apache.juli.FileHandler, 4host-manager.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
#日志输出为输出到文件和输出到控制台
.handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
#日志输出级别:SEVERE (最高级别) > WARNING > INFO > CONFIG > FINE > FINER(精心) > FINEST (所有内容,最低级别)。OFF为禁用、ALL为全部
#配置文件使catalina日志输出级别为FINE
1catalina.org.apache.juli.FileHandler.level = FINE
#catalina文件输出位置
1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
#catalina日志前缀为catalina
1catalina.org.apache.juli.FileHandler.prefix = catalina.
#catalina日志后缀为.log
1catalina.org.apache.juli.FileHandler.suffix = .log
#catalina日志输出格式
1catalina.org.apache.juli.FileHandler.formatter = java.util.logging.SimpleFormatter
# localhost日志
2localhost.org.apache.juli.FileHandler.level = FINE
2localhost.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
2localhost.org.apache.juli.FileHandler.prefix = localhost.
# manager日志
3manager.org.apache.juli.FileHandler.level = FINE
3manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
3manager.org.apache.juli.FileHandler.prefix = manager.
# host-manager日志
4host-manager.org.apache.juli.FileHandler.level = FINE
4host-manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
4host-manager.org.apache.juli.FileHandler.prefix = host-manager.
#控制台日志
java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
#localhost日志文件输出级别为INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO
#localhost日志文件输出处理类2localhost.org.apache.juli.FileHandler
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.FileHandler
#manager日志文件输出级别为INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO
#manager日志文件输出处理类3manager.org.apache.juli.FileHandler
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = 3manager.org.apache.juli.FileHandler
#host-manager日志文件输出级别为INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].level = INFO
#host-manager日志文件输出处理类4host-manager.org.apache.juli.FileHandler
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].handlers = 4host-manager.org.apache.juli.FileHandler
2、conf/server.xml详解
conf/server.xml中配置的是tomcat端口号、服务名等信息,这里讲一下访问日志的配置:
详解:
className:日志记录使用的类名
directory:保存日志的文件夹
prefix:日志文件名前缀
suffix:日志文件名后缀
pattern:日志格式
3、通过配置将日志输出至同一文件中
将catalina、localhost、manager、host-manager四个日志的输出位置、日志前缀修改为统一的即可:
tomcat运行日志默认是以天为单位记录的,格式如:catalina.YYYY-MM-DD.log
二、通过配置将控制台输出文本保存至日志。
1、配置bin/startup.bat文件
把call "%EXECUTABLE%" start %CMD_LINE_ARGS%中的start改为run。
修改前:
修改后:
2、配置bin/catalina.bat文件
打开后在最后边可以看到有四处 %ACTION%。
我们需要在每处%ACTION%后面加上一些代码:
>> %CATALINA_BASE%\logs\catalina.out
这样,每次启动tomcat,系统就会将控制台输出的信息保存在catalina.out文件中了。
3、配置按天自动分割日志
这里使用cronolog工具进行日志分割。
3.1、从网上下载cronolog-1.6.1-win32.zip
网上挺多的,我这里也有一个,cronolog-1.6.1-win32.zip,需要5积分(这可不是我定的)
3.2、解压,解压后找到cronolog.exe,将其复制到tomcat的bin目录下。
3.3、配置bin/catalina.bat文件
还是四处%ACTION%。,在其后添加:
|%CATALINA_BASE%\bin\cronolog %CATALINA_BASE%\logs\catalina.%%Y-%%m-%%d.out
三、Java项目还需要另外做一下配置
如果你的Java项目使用了第三方日志插件,那么你需要做下边这些配置:
项目中的logging.properties配置文件,需要跟tomcat下的日志配置文件对应,不然插件输出的日志可能会保存到其他地方。
当然,也不止这些,后缀、日志滚卷格式等,如果你配置了,就要做出调整
四、配置后结果
1、
logging.properties运行日志已合并。
startup.bat未修改
catalina.bat未修改
运行日志不显示System.out.print
cmd显示System.out.print
未被捕获的异常: cmd不显示 日志中显示
被捕获的异常: cmd显示 日志中不显示
2、
logging.properties运行日志已合并。
startup.bat已修改
catalina.bat已修改
运行日志不显示System.out.print
logging.properties与catalina.bat不能输出到同一个文件中
运行日志 与 System.out.print未能合并
cmd不显示System.out.print
未被捕获的异常: cmd不显示 日志中显示
被捕获的异常: cmd显示 日志中不显示
五、实时查看日志
Linux下我们可以使用tail –f命令来实时查看日志,但是windows下没有这个命令。不过网上有类似的工具,下载下来,就可以像在Linux下那样使用tail –f查看日志了。
百度搜索:tail.exe,找一个下载下来。
添加至path环境变量:
这样,就可以直接在windows下使用tail –f命令实时查看tomcat日志了。
六、定时删日志
首先,在tomcat/log目录下写一个.bat脚本,内容如下:
forfiles /p D:\For_Java\apache-tomcat-7.0.52\logs\ /s /m catalina.*.out /d -5 /c "cmd /c del @path"
右键“我的电脑”,打开管理 --> 计算机管理 --> 系统工具 --> 任务计划程序 --> 创建任务
先配置常规项,写下任务名称等信息:
配置触发器,设置什么时候运行程序,比如:每周一执行
配置操作:指定刚才编写的.bat脚本
确定。