tomcat日志配置
Tomcat是一个流行的Java Servlet容器,用于开发和部署Java Web应用程序。Tomcat的日志系统非常重要,因为它可以帮助开发者和系统管理员监控应用程序的运行状态、诊断问题和优化性能
Tomcat根目录文件作用说明
根目录下有bin,conf,lib,logs,temp,webapps,work 7个文件夹
bin目录
主要是用来存放tomcat的命令,主要有两大类,一类是以.sh结尾的(linux命令),另一类是以.bat结尾的(windows命令)。
重要:很多环境变量的设置都在此处,例如可以设置JDK路径、TOMCAT路径
startup 用来启动tomcat
shutdown 用来关闭tomcat
catalina.sh可以设置tomcat的内存
conf目录
主要是用来存放tomcat的一些配置文件。
server.xml可以设置端口号、设置域名或IP、默认加载的项目、请求编码
web.xml可以设置tomcat支持的文件类型
context.xml可以用来配置数据源之类的
tomcat-users.xml用来配置管理tomcat的用户与权限
在Catalina目录下可以设置默认加载的项目
lib目录
主要用来存放tomcat运行需要加载的jar包,像连接数据库的jdbc的包我们可以加入到lib目录中来。
logs目录
用来存放tomcat在运行过程中产生的日志文件,非常重要的是在控制台输出的日志。(清空不会对tomcat运行带来影响)
在windows环境中,控制台的输出日志在catalina.xxxx-xx-xx.log文件中
在linux环境中,控制台的输出日志在catalina.out文件中
temp目录
用户存放tomcat在运行过程中产生的临时文件。(清空不会对tomcat运行带来影响)
webapps目录
用来存放应用程序,当tomcat启动时会去加载webapps目录下的应用程序。可以以文件夹、war包、jar包的形式发布应用(项目部署后的工程文件)
当然,你也可以把应用程序放置在磁盘的任意位置,在配置文件中映射好就行。(映射在server.conf配置)
work目录
用来存放tomcat在运行时的编译后文件,例如JSP编译后的文件。清空work目录,然后重启tomcat,可以达到清除缓存的作用。
tomcat每次启动时,自动在logs目录下生产以下日志文件,且每天都会生成对应日期的一个文件,造成日志文件众多:
localhost.2012-07-05.txt
catalina.2012-07-05.txt
manager.2012-07-05.txt
host-manager.2012-07-05.txt
Tomcat以上日志都输出到同一个文件中(tomcat.log)
修改步骤
打开Tomcat目录conf\logging.properties,修改如下,所有日志输出到tomcat开头的文件中,根据需求可以适当地修改!
1catalina.org.apache.juli.FileHandler.level = FINE
1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
# 1catalina.org.apache.juli.FileHandler.prefix = catalina.
1catalina.org.apache.juli.FileHandler.prefix = tomcat. //自定义日志前缀
2localhost.org.apache.juli.FileHandler.level = FINE
2localhost.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
# 2localhost.org.apache.juli.FileHandler.prefix = localhost.
2localhost.org.apache.juli.FileHandler.prefix = tomcat.
3manager.org.apache.juli.FileHandler.level = FINE
3manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
# 3manager.org.apache.juli.FileHandler.prefix = manager.
3manager.org.apache.juli.FileHandler.prefix = tomcat.
4host-manager.org.apache.juli.FileHandler.level = FINE
4host-manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs #定日志输出的路径根目录下logs/
# 4host-manager.org.apache.juli.FileHandler.prefix = host-manager.
4host-manager.org.apache.juli.FileHandler.prefix = tomcat.
tomcat日志总结
1.Tomcat 日志信息分为两类 :
一是运行中的日志,它主要记录运行的一些信息,尤其是一些异常错误日志信息 。
二是访问日志信息,它记录的访问的时间,IP ,访问的资料等相关信息。 localhost_acces.log
2 访问日志的配置
默认tomcat不记录访问日志,如下方法可以使 tomcat 记录访问日志
编辑catalina/conf/server.xml
把以下的注释 (<!-- -->) 去掉即可
<!--
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs" prefix="localhost_access_log." suffix=".txt"
pattern="common" resolveHosts="false"/>
-->
3.配置tomcat写出更详细的日志
示例中pattern 项的修改,可以改变日志输出的内容
该项值可以为:common 与 combined ,这两个预先设置好的格式对应的日志输出内容如下:
common 的值: %h %l %u %t %r %s %b
combined 的值: %h %l %u %t %r %s %b %{Referer}i %{User-Agent}i
pattern 也可以根据需要自由组合, 例如 pattern="%h %l"
对于各fields字段的含义请参照 :
http://tomcat.apache.org/tomcat-6.0-doc/config/valve.html 中的 Access Log Valve 项
4.修改Tomcat运行日志的等级
# 日志类型与级别Tomcat 日志分为下面5类:
catalina 、 localhost 、 manager 、 admin 、 host-manager
每类日志的级别分为如下7种:
SEVERE (highest value) > WARNING > INFO > CONFIG > FINE > FINER > FINEST (lowest value)
# 日志级别的设定方法
修改conf/logging.properties 中的内容,设定某类日志的级别
示例:
设置 catalina 日志的级别为: FINE
1catalina.org.apache.juli.FileHandler.level = FINE
禁用 catalina 日志的输出:
1catalina.org.apache.juli.FileHandler.level = OFF
输出 catalina 所有的日志消息均输出:
1catalina.org.apache.juli.FileHandler.level = ALL
5.更改Tomcat日志路径
目的: 能通过浏览器检查tomcat日志
方法:将 tomcat 的日志放置到 $CATALINA_HOME/webapps/ROOT/logs 下,用户就可以通过 http://xxx.xxx.xxx.xxx/logs/catalina.out 访问日志了。
1. 修改tomcat/conf下的logging.properties
1catalina.org.apache.juli.FileHandler.level = FINE
1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/webapps/ROOT/logs
1catalina.org.apache.juli.FileHandler.prefix = catalina.
2localhost.org.apache.juli.FileHandler.level = FINE
2localhost.org.apache.juli.FileHandler.directory = ${catalina.base}/webapps/ROOT/logs
2localhost.org.apache.juli.FileHandler.prefix = localhost.
3manager.org.apache.juli.FileHandler.level = FINE
3manager.org.apache.juli.FileHandler.directory = ${catalina.base}/webapps/ROOT/logs
3manager.org.apache.juli.FileHandler.prefix = manager.
4host-manager.org.apache.juli.FileHandler.level = FINE
4host-manager.org.apache.juli.FileHandler.directory = ${catalina.base}/webapps/ROOT/logs
4host-manager.org.apache.juli.FileHandler.prefix = host-manager.
# 修改tomcat/bin/catalina.sh
if [ -z "CATALINAOUT" ]; then
CATALINAOUT="CATALINA_BASE"/webapps/ROOT/logs/catalina.out
fi
# 重启 tomcat
# 用浏览器即可查看日志: http://xxx.xxx.xxx.xxxx/logs/catalina.out