(三)logback详解之Appender
什么是Appender
Appender是负责写记录事件的组件。Appender必须实现接口“ch.qos.logback.core.Appender”。该接口的重要方法总结如下:
package ch.qos.logback.core;
import ch.qos.logback.core.spi.ContextAware; import ch.qos.logback.core.spi.FilterAttachable; import ch.qos.logback.core.spi.LifeCycle;
public interface Appender<E> extends LifeCycle, ContextAware, FilterAttachable {
public String getName();
public void setName(String name);
void doAppend(E event);
}
Appender 接口里的多数方法都是 getter 和 setting。 值得注意的是 doAppend()方法,它唯一的参数是类型 E的对象。类型 E的实际类型视 logback模块的不同而不同。在 logback-classic
模块里, E 可能是“ ILoggingEvent”类型;在 logback-access 模块里, E 可能是“ AccessEvent”类型。 doAppend()方法也许是 logback 框架里最重要的方法,它负责以适当的格式将记录事
件输出到合适的设备。Appender 是被 命名 的实体。 因为有名字,所以能被引用 。 Appender 接口扩展了FilterAttachable 接口,因此 appender 实例可被关联一个或多个过滤器。
Appender 是最终负责输出记录事件的组件。 然而,它们可以把实际格式化的任务委托给 Layout或 Encoder 对象。每个 layout/encoder 都关联到一个且仅一个 appender。有些 appender
有内置的或固定的事件格式,因此它们不需要也没有 layout/encoder。例如, SocketAppender在发送记录事件之前只是简单地对其进行序列化。