关于tomcat日志系统的实现:
日志对于容器来说,也是一个组件而已,其实很容易理解,对象在容器中创建、工作、销毁,所产生的信息以及错误是需要记录的,下面看看tomcat日志系统。
对于这些接口和类我们一一介绍:
Logger
public interface Logger { // ----------------------------------------------------- Manifest Constants public static final int FATAL = Integer.MIN_VALUE; public static final int ERROR = 1; public static final int WARNING = 2; public static final int INFORMATION = 3; public static final int DEBUG = 4; // ------------------------------------------------------------- Properties public Container getContainer(); public void setContainer(Container container); public String getInfo(); public int getVerbosity(); public void setVerbosity(int verbosity); // --------------------------------------------------------- Public Methods public void addPropertyChangeListener(PropertyChangeListener listener); public void log(String message); public void log(Exception exception, String msg); public void log(String message, Throwable throwable); public void log(String message, int verbosity); public void log(String message, Throwable throwable, int verbosity); public void removePropertyChangeListener(PropertyChangeListener listener); } |
接口中定义了日志级别的常量,日志级别可以通过setVerbosity(int verbosity);进行设置,并且声明了log重载方法。
LoggerBase
该类是一个抽象类,它实现了Logger接口中除log(String msg)之外的所有方法,该方法需要在子类中进行覆盖,所有的其他log方法都调用了该方法。因为每一个子类都将信息记录到不同的地方,所以该方法在LoggerBase中被留空。
现在来看该类的冗余级别。它被定义为一个 protected 的名为 verbosity 的变量,默认值为 ERROR。
protected int verbosity = ERROR;
冗余级别可以使用 s