org.apache.logging.log4j.flume.appender
Class FlumeAppender

java.lang.Object
  extended by org.apache.logging.log4j.core.AbstractLifeCycle
      extended by org.apache.logging.log4j.core.filter.AbstractFilterable
          extended by org.apache.logging.log4j.core.appender.AbstractAppender
              extended by org.apache.logging.log4j.flume.appender.FlumeAppender
All Implemented Interfaces:
Serializable, Appender, Filterable, LifeCycle, FlumeEventFactory

@Plugin(name="Flume",
        category="Core",
        elementType="appender",
        printObject=true)
public final class FlumeAppender
extends AbstractAppender
implements FlumeEventFactory

An Appender that uses the Avro protocol to route events to Flume.

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from interface org.apache.logging.log4j.core.LifeCycle
LifeCycle.State
 
Field Summary
 
Fields inherited from class org.apache.logging.log4j.core.AbstractLifeCycle
LOGGER
 
Method Summary
 void append(LogEvent event)
          Publish the event.
static FlumeAppender createAppender(Agent[] agents, Property[] properties, String embedded, String type, String dataDir, String connectionTimeoutMillis, String requestTimeoutMillis, String agentRetries, String maxDelayMillis, String name, String ignore, String excludes, String includes, String required, String mdcPrefix, String eventPrefix, String compressBody, String batchSize, String lockTimeoutRetries, FlumeEventFactory factory, Layout<? extends Serializable> layout, Filter filter)
          Create a Flume Avro Appender.
 FlumeEvent createEvent(LogEvent event, String includes, String excludes, String required, String mdcPrefix, String eventPrefix, boolean compress)
          Create a Flume event.
 void stop()
           
 
Methods inherited from class org.apache.logging.log4j.core.appender.AbstractAppender
error, error, error, getHandler, getLayout, getName, ignoreExceptions, parseInt, setHandler, toString
 
Methods inherited from class org.apache.logging.log4j.core.filter.AbstractFilterable
addFilter, getFilter, hasFilter, isFiltered, removeFilter, start
 
Methods inherited from class org.apache.logging.log4j.core.AbstractLifeCycle
equalsImpl, getState, hashCodeImpl, isInitialized, isStarted, isStarting, isStopped, isStopping, setStarted, setStarting, setState, setStopped, setStopping
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.apache.logging.log4j.core.LifeCycle
getState, isStarted, isStopped, start
 

Method Detail

append

public void append(LogEvent event)
Publish the event.

Specified by:
append in interface Appender
Parameters:
event - The LogEvent.

stop

public void stop()
Specified by:
stop in interface LifeCycle
Overrides:
stop in class AbstractFilterable

createEvent

public FlumeEvent createEvent(LogEvent event,
                              String includes,
                              String excludes,
                              String required,
                              String mdcPrefix,
                              String eventPrefix,
                              boolean compress)
Create a Flume event.

Specified by:
createEvent in interface FlumeEventFactory
Parameters:
event - The Log4j LogEvent.
includes - comma separated list of mdc elements to include.
excludes - comma separated list of mdc elements to exclude.
required - comma separated list of mdc elements that must be present with a value.
mdcPrefix - The prefix to add to MDC key names.
eventPrefix - The prefix to add to event fields.
compress - If true the body will be compressed.
Returns:
A Flume Event.

createAppender

@PluginFactory
public static FlumeAppender createAppender(@PluginElement(value="Agents")
                                                         Agent[] agents,
                                                         @PluginElement(value="Properties")
                                                         Property[] properties,
                                                         @PluginAttribute(value="embedded")
                                                         String embedded,
                                                         @PluginAttribute(value="type")
                                                         String type,
                                                         @PluginAttribute(value="dataDir")
                                                         String dataDir,
                                                         @PluginAliases(value="connectTimeout")@PluginAttribute(value="connectTimeoutMillis")
                                                         String connectionTimeoutMillis,
                                                         @PluginAliases(value="requestTimeout")@PluginAttribute(value="requestTimeoutMillis")
                                                         String requestTimeoutMillis,
                                                         @PluginAttribute(value="agentRetries")
                                                         String agentRetries,
                                                         @PluginAliases(value="maxDelay")@PluginAttribute(value="maxDelayMillis")
                                                         String maxDelayMillis,
                                                         @PluginAttribute(value="name")
                                                         String name,
                                                         @PluginAttribute(value="ignoreExceptions")
                                                         String ignore,
                                                         @PluginAttribute(value="mdcExcludes")
                                                         String excludes,
                                                         @PluginAttribute(value="mdcIncludes")
                                                         String includes,
                                                         @PluginAttribute(value="mdcRequired")
                                                         String required,
                                                         @PluginAttribute(value="mdcPrefix")
                                                         String mdcPrefix,
                                                         @PluginAttribute(value="eventPrefix")
                                                         String eventPrefix,
                                                         @PluginAttribute(value="compress")
                                                         String compressBody,
                                                         @PluginAttribute(value="batchSize")
                                                         String batchSize,
                                                         @PluginAttribute(value="lockTimeoutRetries")
                                                         String lockTimeoutRetries,
                                                         @PluginElement(value="FlumeEventFactory")
                                                         FlumeEventFactory factory,
                                                         @PluginElement(value="Layout")
                                                         Layout<? extends Serializable> layout,
                                                         @PluginElement(value="Filter")
                                                         Filter filter)
Create a Flume Avro Appender.

Parameters:
agents - An array of Agents.
properties - Properties to pass to the embedded agent.
embedded - true if the embedded agent manager should be used. otherwise the Avro manager will be used. Note: The embedded attribute is deprecated in favor of specifying the type attribute.
type - Avro (default), Embedded, or Persistent.
dataDir - The directory where the Flume FileChannel should write its data.
connectionTimeoutMillis - The amount of time in milliseconds to wait before a connection times out. Minimum is 1000.
requestTimeoutMillis - The amount of time in milliseconds to wait before a request times out. Minimum is 1000.
agentRetries - The number of times to retry an agent before failing to the next agent.
maxDelayMillis - The maximum number of milliseconds to wait for a complete batch.
name - The name of the Appender.
ignore - If "true" (default) exceptions encountered when appending events are logged; otherwise they are propagated to the caller.
excludes - A comma separated list of MDC elements to exclude.
includes - A comma separated list of MDC elements to include.
required - A comma separated list of MDC elements that are required.
mdcPrefix - The prefix to add to MDC key names.
eventPrefix - The prefix to add to event key names.
compressBody - If true the event body will be compressed.
batchSize - Number of events to include in a batch. Defaults to 1.
lockTimeoutRetries - Times to retry a lock timeout when writing to Berkeley DB.
factory - The factory to use to create Flume events.
layout - The layout to format the event.
filter - A Filter to filter events.
Returns:
A Flume Avro Appender.


Copyright © 1999-2015 Apache Software Foundation. All Rights Reserved.
Apache Logging, Apache Log4j, Log4j, Apache, the Apache feather logo, the Apache Logging project logo, and the Apache Log4j logo are trademarks of The Apache Software Foundation.