The Flume NG Appender allows applications to send events to Flume NG Agents.
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.
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.0-beta1</log4j.version> <slf4j.version>1.6.6</slf4j.version> <jackson.version>1.9.3</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>${log4j2_version}</version> </dependency> <dependency> <groupId>org.apache.logging.log4j.adapters</groupId> <artifactId>log4j12-api</artifactId> <version>${log4j2_version}</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>${log4j2_version}</version> </dependency> <dependency> <groupId>org.apache.logging.log4j.adapters</groupId> <artifactId>log4j-flume-ng</artifactId> <version>${log4j2_version}</version> </dependency> <dependency> <groupId>org.apache.logging.log4j.adapters</groupId> <artifactId>slf4j-impl</artifactId> <version>${log4j2_version}</version> </dependency> <dependency> <groupId>org.apache.logging.log4j.adapters</groupId> <artifactId>log4j-jcl</artifactId> <version>${log4j2_version}</version> </dependency> <dependency> <groupId>org.apache.logging.log4j.adapters</groupId> <artifactId>log4j-web</artifactId> <version>${log4j2_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.adapters</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.adapters</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.adapters</groupId> <artifactId>log4j-jcl</artifactId> </dependency> <!-- Log4j 2 Servlet Context Listener --> <dependency> <groupId>org.apache.logging.log4j.adapters</groupId> <artifactId>log4j-web</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>