## Flume Appender The Flume Appender allows applications to send events to Flume Agents. ### Remote Agent Including the Log4j flume-ng jar in your Maven-based project as a dependency should cause all the transitive dependencies necessary for the remote Agent to function to be included. ### Persistent Agent The persistent agent uses Berkeley DB. The following dependency should be added to your pom.xml in addition to the log4j-flume-ng dependency.
      <dependencyManagement>
        <dependencies>
          <dependency>
            <groupId>com.sleepycat</groupId>
            <artifactId>je</artifactId>
            <version>5.0.73</version>
          </dependency>
        </dependencies>
      </dependencyManagement>
      <dependencies>
        <dependency>
          <groupId>com.sleepycat</groupId>
          <artifactId>je</artifactId>
        </dependency>
      </dependencies>
      <repositories>
        <repository>
          <id>oracleReleases</id>
          <name>Oracle Released Java Packages</name>
          <url>http://download.oracle.com/maven</url>
          <layout>default</layout>
        </repository>
      </repositories>
### Embedded Agent The following is a sample pom file for Maven that can be used as a template for integrating the Flume Embedded Appender into an application.
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>com.myapp</groupId>
      <artifactId>myapp</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <name>My App</name>
      <description>App to test log4j appender</description>

      <properties>
        <log4j.version>2.3</log4j.version>
        <slf4j.version>1.7.12</slf4j.version>
        <jackson.version>1.9.13</jackson.version>
      </properties>

      <dependencyManagement>
        <dependencies>
          <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>${slf4j.version}</version>
          </dependency>
          <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-ext</artifactId>
            <version>${slf4j.version}</version>
          </dependency>
          <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
            <version>${log4j.version}</version>
          </dependency>
          <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-1.2-api</artifactId>
            <version>${log4j.version}</version>
          </dependency>
          <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>${log4j.version}</version>
          </dependency>
          <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-flume-ng</artifactId>
            <version>${log4j.version}</version>
          </dependency>
          <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-slf4j-impl</artifactId>
            <version>${log4j.version}</version>
          </dependency>
          <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-jcl</artifactId>
            <version>${log4j.version}</version>
          </dependency>
          <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-core-asl</artifactId>
            <version>${jackson.version}</version>
          </dependency>
          <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-mapper-asl</artifactId>
            <version>${jackson.version}</version>
          </dependency>
          <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-jaxrs</artifactId>
            <version>${jackson.version}</version>
          </dependency>
          <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-xc</artifactId>
            <version>${jackson.version}</version>
          </dependency>
        </dependencies>
      </dependencyManagement>

      <dependencies>
        <!-- Log4j 2 API -->
        <dependency>
          <groupId>org.apache.logging.log4j</groupId>
          <artifactId>log4j-api</artifactId>
        </dependency>
        <!-- Log4j 1.x API -->
        <dependency>
          <groupId>org.apache.logging.log4j</groupId>
          <artifactId>log4j12-api</artifactId>
        </dependency>
        <!-- Log4j 2 implementation -->
        <dependency>
          <groupId>org.apache.logging.log4j</groupId>
          <artifactId>log4j-core</artifactId>
        </dependency>
        <!-- SLF4J to Log4j 2 binding -->
        <dependency>
          <groupId>org.apache.logging.log4j</groupId>
          <artifactId>slf4j-impl</artifactId>
        </dependency>
        <!-- SLF4J API -->
        <dependency>
          <groupId>org.slf4j</groupId>
          <artifactId>slf4j-api</artifactId>
        </dependency>
        <!-- SLF4J extensions -->
        <dependency>
          <groupId>org.slf4j</groupId>
          <artifactId>slf4j-ext</artifactId>
        </dependency>
        <!-- Commson Logging to Log4j 2 binding -->
        <dependency>
          <groupId>org.apache.logging.log4j</groupId>
          <artifactId>log4j-jcl</artifactId>
        </dependency>
        <!-- Avro transport protocol - required for Flume -->
        <dependency>
          <groupId>org.apache.avro</groupId>
          <artifactId>avro</artifactId>
          <version>1.6.3</version>
        </dependency>
        <!-- Hadoop core - required by embedded Flume Agent -->
        <dependency>
          <groupId>org.apache.hadoop</groupId>
          <artifactId>hadoop-core</artifactId>
          <version>1.0.3</version>
          <exclusions>
            <exclusion>
              <groupId>org.mortbay.jetty</groupId>
              <artifactId>servlet-api</artifactId>
            </exclusion>
            <exclusion>
              <groupId>org.mortbay.jetty</groupId>
              <artifactId>servlet-api-2.5</artifactId>
            </exclusion>
            <exclusion>
              <groupId>junit</groupId>
              <artifactId>junit</artifactId>
            </exclusion>
          </exclusions>
        </dependency>
        <!-- Flume File Channel - required by embedded Flume agent -->
        <dependency>
          <groupId>org.apache.flume.flume-ng-channels</groupId>
          <artifactId>flume-file-channel</artifactId>
          <version>1.2.0</version>
          <exclusions>
            <exclusion>
              <groupId>log4j</groupId>
              <artifactId>log4j</artifactId>
            </exclusion>
            <exclusion>
              <groupId>org.slf4j</groupId>
              <artifactId>slf4j-log4j12</artifactId>
            </exclusion>
          </exclusions>
        </dependency>
      </dependencies>
    </project>
## Requirements The Flume Appender requires at least Java 6.