《How Tomcat Works》翻译(5)之 日志
第七章、日志
一、前言部分
?
A Logger是一个记录消息的组件。在Catalina中的一个logger是与一个Container关联,该组件和其他组件相比是相对比较简单。Tomcat在org.apache.catalina.logger包中提供不同类型重做日志功能。在本章的应用程序将会在ex07.pyrmont包中找到,这两个类( SimpleContext,Bootstrap)发生了改变,其他的代码与第六章的应用程序都是一样。
?
在本章分为三个部分。第一个部分就是说明org.apache.catalina.Logger接口,该接口一定会被整个loggers实现。第二部分解释在Tomcat中的the Loggers,然后第三部分就十分详细的说明在本应用程序中如何运用Tomcat的Loggers。
?
二、The Logger接口
?
?一个Logger一定要实现org.apache.catalinna.Logger接口,下面请看代码:
?
?
四、The LoggerBase类
?
在Tomcat5中The LoggerBase类是十分的复杂,因为它把创建MBeans相关的代码也兼容在该类里面,这个我们会在第二十章讨论。因此我们就看看在Tomcat4中的the LoggerBase类。如果你能够理解第二十章内容,那么你也应该能理解在Tomcat5中的the LoggerBase类。
?
在Tomcat中的LoggerBase类(此类是抽象类)实现了The Logger接口的所有方法除了the log(String msg)方法是抽象方法.
?
???? public abstract void log(String msg);
因此就可以在孩子类中实现该方法。注解:典型的模板模式,这个可以借鉴学习。
?
注意整个其他的log方法都会最终都会调用这个重载的log方法。因为每个孩子的logs 消息有着不同的目的地,因此这个方法在LoggerBase类中是一个抽象方法。
?
现在让我们看看这个类的冗长(the verbosity)程度。the verbosity程度用成员变量verbosity定义,其默认值是ERROR:
????? protected int verbosity=ERROR;
?
The verbosity level可以通过调用setVerbosity方法来改变这个值,主要传的参数是:FATAL, ERROR , WARING , INFOMATION, DEBUG.
?
下面是在LoggerBase类的setVerbosity方法的代码:
package org.apache.catalina.logger;public class SystemErrLogger extends LoggerBase { protected static final String info = "org.apache.catalina.logger.SystemErrLogger/1.0"; public void log(String msg) { System.err.println(msg); }}?呵呵。。。看到了区别了吧。。。
?
七、The FileLogger类
?
The FileLogger类是LoggerBase的子类,该子类是功能最为全面的类。该类一旦接收到与容器关联的消息时它就会把该消息写到一个文件中,并且每条消息都会有任意的时间标记。当第一次实例该类时,这个类就会创建一个文件(文件名字就是创建文件的时间)。如果时间改变了,你将会创建一个新的文件
1 楼 he_wen 2010-12-07 有什么翻译的不好的地方请大家多多见谅,本人还是第一次翻译文章。。。反正读了这本书我是受益匪浅,所有想翻译一下,第一在温习一下里面的体系机构,第二就是想提高一下英文