1、catalina.out日志【路径是在启动脚本 ${catalina.base}/bin/catalina.sh 中指定】
if [ -z "$CATALINA_OUT" ] ; then
CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out
fi
catalina.out即标准输出和标准出错,所有输出到这两个位置的都会进入catalina.out,这里包含tomcat运行自己输出的日志以及应用里向console输出的日志。默认这个日志文件是不会进行自动切割的,我们需要借助其他工具进行切割(注意:catalina.out文件如果过大会影响)
2、${catalina.base}/conf/logging.properties 【自身安装路径下的配置文件】
#参考文档 https://blog.csdn.net/pengjunlee/article/details/79477567
#定义所有可用的handler的key。这个key分解为两部分: 前缀+类型,其中前缀是以 阿拉伯数字开头 直到第一个点号 . 结束为前缀 ,前缀后则是具体全限定名的日志处理类。
#Tomcat这样的设计为解决类型相同导致(比如org.apache.juli.AsyncFileHandler)的实例名重复问题(也就是为了实例化同一个类不同名称的处理器)
#1catalina.org.apache.juli.AsyncFileHandler 表示前缀是 1catalina 具体的日志处理类为 org.apache.juli.AsyncFileHandler
#java.util.logging.ConsoleHandler 前缀则为空 具体的日志处理类为 java.util.logging.ConsoleHandler
handlers = 1catalina.org.apache.juli.AsyncFileHandler, 2localhost.org.apache.juli.AsyncFileHandler, 3manager.org.apache.juli.AsyncFileHandler, 4host-manager.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler
#这个地方的 .handlers 是用来设置根Logger的具体日志处理器集合 规则和上面的一样,使用前缀+类型的方式定义
.handlers = 1catalina.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler
############################################################
# Handler specific properties.
# Describes specific configuration info for Handlers.
############################################################
############################################################
# tomcat 有五类日志 :catalina、localhost、manager、admin、host-manager
# level 表示日志级别 日志输出级别:OFF(关闭日志系统) > SEVERE (记录异常错误) > WARNING > INFO > CONFIG > FINE > FINER(精心) > FINEST (所有内容,最低级别) > ALL(记录所有信息)
# directory 表示日志文件的存放目录
# maxDays 表示可以存放多少天内的日志文件
# encoding 表示日志文件的编码格式
# handlers 具体使用那个日志处理器
# prefix是日志名前缀,suffix是日志名后缀
############################################################
#catalina引擎的日志文件,catalina.{yyyy-MM-dd}.log 是tomcat自己运行的一些日志,这些日志还会输出到catalina.out,
# 但是应用向console输出的日志不会输出到catalina.{yyyy-MM-dd}.log,它是tomcat的启动和暂停时的运行日志,注意,它和catalina.out是里面的内容是不一样的
1catalina.org.apache.juli.AsyncFileHandler.level = FINE
1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.
1catalina.org.apache.juli.AsyncFileHandler.maxDays = 90
1catalina.org.apache.juli.AsyncFileHandler.encoding = UTF-8
#Tomcat下内部代码丢出的日志,(jsp页面内部错误的异常,org.apache.jasper.runtime.HttpJspBase.service类丢出的,日志信息就在该文件!)
# localhost.{yyyy-MM-dd}.log主要是应用初始化(listener, filter, servlet)未处理的异常最后被tomcat捕获而输出的日志,
# 它也是包含tomcat的启动和暂停时的运行日志,但它没有catalina.{yyyy-MM-dd}.log 日志全。它只是记录了部分日志
2localhost.org.apache.juli.AsyncFileHandler.level = FINE
2localhost.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
2localhost.org.apache.juli.AsyncFileHandler.prefix = localhost.
2localhost.org.apache.juli.AsyncFileHandler.maxDays = 90
2localhost.org.apache.juli.AsyncFileHandler.encoding = UTF-8
# Tomcat下默认manager应用日志,manager.{yyyy-MM-dd}.log 这个是tomcat manager项目专有的日志文件
3manager.org.apache.juli.AsyncFileHandler.level = FINE
3manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
3manager.org.apache.juli.AsyncFileHandler.prefix = manager.
3manager.org.apache.juli.AsyncFileHandler.maxDays = 90
3manager.org.apache.juli.AsyncFileHandler.encoding = UTF-8
# 是放tomcat的自带的manager项目的日志信息的 host-manager.{yyyy-MM-dd}.log
4host-manager.org.apache.juli.AsyncFileHandler.level = FINE
4host-manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
4host-manager.org.apache.juli.AsyncFileHandler.prefix = host-manager.
4host-manager.org.apache.juli.AsyncFileHandler.maxDays = 90
4host-manager.org.apache.juli.AsyncFileHandler.encoding = UTF-8
# 控制台输出的日志,Linux下默认重定向到catalina.out
java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter
java.util.logging.ConsoleHandler.encoding = UTF-8
############################################################
# Facility specific properties.
# Provides extra control for each logger.
############################################################
# Tomcat JULI日志格式:使用Engine,Host, Context来定义日志,Engine一般是Catalina。
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.AsyncFileHandler
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = 3manager.org.apache.juli.AsyncFileHandler
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].handlers = 4host-manager.org.apache.juli.AsyncFileHandler
# For example, set the org.apache.catalina.util.LifecycleBase logger to log
# each component that extends LifecycleBase changing state:
#org.apache.catalina.util.LifecycleBase.level = FINE
# To see debug messages in TldLocationsCache, uncomment the following line:
#org.apache.jasper.compiler.TldLocationsCache.level = FINE
# To see debug messages for HTTP/2 handling, uncomment the following line:
#org.apache.coyote.http2.level = FINE
# To see debug messages for WebSocket handling, uncomment the following line:
#org.apache.tomcat.websocket.level = FINE
3、localhost_access_log.{yyyy-MM-dd}.txt:这个是访问tomcat的日志,请求时间和资源,状态码都有记录。可以通过这个日志分析耗时 ,具体配置是在 ${catalina.base}/conf/server.xml 里的HOST标签中
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
<!-- Access log processes all example. prefix是日志名前缀,suffix是日志名后缀
Documentation at: /docs/config/valve.html
Note: The pattern used is equivalent to using pattern="common" -->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>