Hi everyone,

I tested the flume appender for log4j2. My configuration XML looks like
this:

<Configuration status="ERROR" name="some_name">

    ...

    <Appenders>

         ...

        <Flume name="FLUME" compress="true">
        <Agent host="${FLUME_HOST}" port="${FLUME_PORT}"/>
        <PatternLayout pattern="${LOG_PATTERN}"/>
        <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
        </Flume>
    </Appenders>

    <Loggers>
        <Root level="DEBUG">
                <AppenderRef ref="FLUME"/>
            ...
        </Root>
    </Loggers>
</Configuration>

And I build my application with maven assembly plugin to get an uber jar
which contains all dependencies (I want to ship a single jar file to all
the destination runtime environments).

When I start the application I get the following error:
ERROR Error processing element Flume ([Appenders: null]): CLASS_NOT_FOUND

So it looks like there is some dependency missing. But in the official doc
I read that for remote mode of the flume appender I only need the following
dependency (including the necessary log4j dependencies):

<dependencies>

                ...

<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>*log4j-flume-ng*</artifactId>
<version>2.5</version>
</dependency>
</dependencies>

Another hint: When I start the application from eclipse, it seems to work
totally fine (at least I don't get the error from above).

So what I am doing wrong here? Has anyone some advice for me? Thanks in
advance.

Julian

Reply via email to