各位同仁,上期日志维基我们介绍
Apache日志的相关内容,本期向大家介绍由
Apache软件基金会下属
Jakarta项目开发的
Servlet容器
----
Tomcat。从最初发布的
Tomcat 3.0.x至今,
Tomcat的最新版本为
7.0.12 Released
。作为轻量级应用服务器,
Tomcat
普遍应用在中小型系统和并发访问用户不是很多的场合。
Tomcat
以其资源占有率小、扩展性好、支持负载及邮件服务等功能,深受广大编程员的喜爱。
Tomcat
日志信息分为两类:一是运行中的日志,它主要记录
tomcat
在运行过程中的信息,尤其是一些异常、错误的日志信息;二是访问日志信息,它记录了访问的时间、
IP
地址、访问资料等相关信息。
Tomcat
启动时的系统日志默认是由
JdkLog14Logger
打印,而且若将通用日志组件
(commons-logging)
和
log4j
搭配使用就能输出十分详尽的日志信息。
Tomcat日志配置
在默认安装下,
tomcat 不记录访问日志,但
Tomcat自带的能够记录的
http访问日志很详细,若想要查看
tomcat的访问日志,下面配置方法可以使
tomcat 记录访问日志:
编辑
${catalina}/conf/server.xml 文件写入如下内容(注:
${catalina} 为
tomcat 的安装目录)
<Valve className="org.apache.catalina.valves.AccessLogValve"
配置实例:
Valve className="org.apache.catalina.valves.AccessLogValve"
directory="E:\Tomcat_log" prefix="longxun_tomcat." suffix=".txt"
pattern=''%h %l %u %t "%r" %s %b "%{Referer}i"''
resolveHosts="false" fileDateFormat="yyyy-MM-dd.HH"/
其中:
fileDateFormat="yyyy-MM-dd.HH",会让日志文件按小时进行滚卷,比默认的按天滚卷要好些,尤其是访问量大的网站,可以考虑写成
fileDateFormat="yyyy-MM-dd.HH.mm",就会是每分钟一个日志文件了。而且可以分别按
Engine, Host, or Context,来记录自己的日志。
pattern作为其中最主要的参数,其内容中包含的参数也相对丰富许多,下面我们重点介绍下
pattern。
通过
pattern项的修改,可以改变日志输出内容。
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"
Tomcat是由
Apache软件基金会下属的组织开发而出,在访问日志的输出规格上两者有较多的相识之处。
以下是由互联网提供的
tomcat访问日志范例:
127.0.0.1 192.168.254.108 - 127.0.0.1 HTTP/1.1 - GET 80&<60; GET /rightmainima/leftbott4.swf HTTP/1.1 304 5563A67708646B6AA299C33D 59BE132A [22/Sep/2007:10:08:52 +0800] - /rightmainima/leftbott4.swf localhost 0 0.000
让我们通过上述例子分析,了解下相关的参数:
%a 远端
IP地址即访问者的地址为
127.0.0.1;
%A 本地
IP地址为
192.168.254.108;
%b 发送的字节数,不包括
HTTP头,这里为
0,使用“
-”
;
%h 由于在编辑
server.xml文件时
,
resolveHosts配置为
false,将会显示远端
IP地址即
127.0.0.1;若
resolveHosts配置为
true,远端主机的
IP地址将通过
DNS查询转换成主机名
;
%H 请求协议为
HTTP/1.1;
%m 访问动作为
GET;
%p 请求端口为
80端口
;
%U 访问的
URL地址为
/rightmainima/leftbott4.swf;
%s http的返回值为
304;
%S 用户的
session ID为
5563A67708646B6AA299C33D 59BE132A;
%t 日志时间为
22/Sep/2007:10:08:52 +0800;
%v 本地服务器名称为
localhost;
%T 处理请求时间
(以毫秒为单位
)
%D 处理请求时间
(以秒为单位
)
tomcat日志的用途
在简介中,我们提到
tomcat日志分为两类,运行日志和访问日志,通过分析
tomcat日志的信息,我们不仅能够在
tomcat运行异常时定位到故障位置,而且服务被攻瘫之后通过访问日志了解基本攻击信息,进而及时做出应对策略。
当碰上
Tomcat比较难缠的
Error filterStart,控制台输出信息如下:
2007-3-13 17:43:46 org.apache.catalina.core.StandardContext start
严重 : Error filterStart
2007-3-13 17:43:46 org.apache.catalina.core.StandardContext start
严重 : Context startup failed due to previous errors
严重 : Error filterStart
2007-3-13 17:43:46 org.apache.catalina.core.StandardContext start
严重 : Context startup failed due to previous errors
小技巧:修改Tomcat运行日志等级
Tomcat 日志种类分为下面5类:
Ø
Catalina
Ø
Localhost
Ø
Manager
Ø
Admin
Ø
Host-manager
在这五类日志中每类日志的级别分为如下
7种:
SEVERE (highest value) > WARNING > INFO > CONFIG > FINE > FINER > FINEST (lowest value)
在了解了
Tomcat运行日志的等级划分后,下面我们介绍下日志级别的设定方法:
修改
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