logging-log4j-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ralph Goers <ralph.go...@dslextreme.com>
Subject Re: Flume appender: Dependency problem when building with maven assembly plugin?
Date Thu, 05 May 2016 00:00:58 GMT
You are most likely having this problem because when you create your uber jar you can only
include one of the Log4j2Plugins.dat files. Both the log4j2-core jar and the log4j2-flume
jar are going to have one.  This has been discussed in https://issues.apache.org/jira/browse/LOG4J2-1059
<https://issues.apache.org/jira/browse/LOG4J2-1059> (which probably can be closed),
https://issues.apache.org/jira/browse/LOG4J2-369 <https://issues.apache.org/jira/browse/LOG4J2-369>,
and https://issues.apache.org/jira/browse/LOG4J2-673 <https://issues.apache.org/jira/browse/LOG4J2-673>.
 This last one has a solution in the middle of the discussion by way of a Transformer that
can be used in the maven shade plugin. However, you are using the assembly plugin, so I am
not really sure how you can do it that way.

Ralph




> On May 4, 2016, at 12:43 PM, Julian Keppel <juliankeppel1991@gmail.com> wrote:
> 
> 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


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message