001/**
002 * Logback: the reliable, generic, fast and flexible logging framework.
003 * Copyright (C) 1999-2015, QOS.ch. All rights reserved.
004 *
005 * This program and the accompanying materials are dual-licensed under
006 * either the terms of the Eclipse Public License v1.0 as published by
007 * the Eclipse Foundation
008 *
009 *   or (per the licensee's choosing)
010 *
011 * under the terms of the GNU Lesser General Public License version 2.1
012 * as published by the Free Software Foundation.
013 */
014package ch.qos.logback.core;
015
016import ch.qos.logback.core.spi.ContextAware;
017import ch.qos.logback.core.spi.FilterAttachable;
018import ch.qos.logback.core.spi.LifeCycle;
019
020public interface Appender<E> extends LifeCycle, ContextAware, FilterAttachable<E> {
021
022    /**
023     * Get the name of this appender. The name uniquely identifies the appender.
024     */
025    String getName();
026
027    /**
028     * This is where an appender accomplishes its work. Note that the argument is of
029     * type Object.
030     * 
031     * @param event
032     */
033    void doAppend(E event) throws LogbackException;
034
035    /**
036     * Set the name of this appender. The name is used by other components to
037     * identify this appender.
038     * 
039     */
040    void setName(String name);
041
042}