Interface Appender

All Superinterfaces:
LifeCycle
All Known Implementing Classes:
AbstractAppender, AbstractDatabaseAppender, AbstractFileAppender, AbstractOutputStreamAppender, AbstractWriterAppender, AsyncAppender, ConsoleAppender, CountingNoOpAppender, FailoverAppender, FileAppender, HttpAppender, JdbcAppender, JeroMqAppender, JmsAppender, KafkaAppender, MemoryMappedFileAppender, NoSqlAppender, NullAppender, OutputStreamAppender, RandomAccessFileAppender, RewriteAppender, RollingFileAppender, RollingRandomAccessFileAppender, RoutingAppender, ScriptAppenderSelector, SmtpAppender, SocketAppender, SyslogAppender, WriterAppender

public interface Appender extends LifeCycle
Appends LogEvents. An Appender can contain a Layout if applicable as well as an ErrorHandler. Typical Appender implementations coordinate with an implementation of AbstractManager to handle external resources such as streams, connections, and other shared state. As Appenders are plugins, concrete implementations need to be annotated with Plugin and need to provide a static factory method annotated with PluginFactory.

Most core plugins are written using a related Manager class that handle the actual task of serializing a LogEvent to some output location. For instance, many Appenders can take advantage of the OutputStreamManager class.

It is recommended that Appenders don't do any heavy lifting since there can be many instances of the class being used at any given time. When resources require locking (e.g., through FileLock), it is important to isolate synchronized code to prevent concurrency issues.

  • Field Details

  • Method Details

    • append

      void append(LogEvent event)
      Logs a LogEvent using whatever logic this Appender wishes to use. It is typically recommended to use a bridge pattern not only for the benefits from decoupling an Appender from its implementation, but it is also handy for sharing resources which may require some form of locking.
      Parameters:
      event - The LogEvent.
    • getName

      String getName()
      Gets the name of this Appender.
      Returns:
      name, may be null.
    • getLayout

      Layout<? extends Serializable> getLayout()
      Returns the Layout used by this Appender if applicable.
      Returns:
      the Layout for this Appender or null if none is configured.
    • ignoreExceptions

      boolean ignoreExceptions()
      Some Appenders need to propagate exceptions back to the application. When ignoreExceptions is false the AppenderControl will allow the exception to percolate.
      Returns:
      true if exceptions will be logged but not thrown, false otherwise.
    • getHandler

      ErrorHandler getHandler()
      Gets the ErrorHandler used for handling exceptions.
      Returns:
      the ErrorHandler for handling exceptions.
    • setHandler

      void setHandler(ErrorHandler handler)
      Sets the ErrorHandler used for handling exceptions.
      Parameters:
      handler - the ErrorHandler to use for handling exceptions.