logging-log4j-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Simon Monecke <simonmone...@gmail.com>
Subject Re: Flume-Appender
Date Wed, 14 Nov 2012 10:54:14 GMT
Hi Ralph,

thank you for your response, but now i have another problem.

i have these dependencies:
<dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
            <version>2.0-beta2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>2.0-beta2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-flume-ng</artifactId>
            <version>2.0-alpha2</version>
            <exclusions>
                <exclusion>
                    <artifactId>slf4j-impl</artifactId>
                    <groupId>org.apache.logging.log4j</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j.adapters</groupId>
            <artifactId>slf4j-impl</artifactId>
            <version>2.0-beta2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j.adapters</groupId>
            <artifactId>log4j12-api</artifactId>
            <version>2.0-beta2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.flume</groupId>
            <artifactId>flume-ng-core</artifactId>
            <version>${flumeVersion}</version>
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-log4j12</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>log4j</groupId>
                    <artifactId>log4j</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.apache.flume</groupId>
            <artifactId>flume-ng-node</artifactId>
            <version>${flumeVersion}</version>
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-log4j12</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>log4j</groupId>
                    <artifactId>log4j</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.apache.flume.flume-ng-channels</groupId>
            <artifactId>flume-file-channel</artifactId>
            <version>${flumeVersion}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-core</artifactId>
            <version>1.0.1</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.10</version>
        </dependency>

In Eclipse i can run a little test:
        Logger logger = LogManager.getLogger(Log4j2FlumeEmbedded.class);

        String text = "Test";
        long timeOfFirstLog = System.nanoTime();
        for (int i = 0; i < countOfLogs; i++) {
            logger.error(text);
        }

So i get no errors, but i see nothing. I use "export as runnable jar" to
pack all dependencies in one jar. Then i copy it to my virtualbox (linux),
start a flume-agent and get a error:

"Exception in thread "main" java.lang.NullPointerException
    at
org.apache.logging.log4j.core.config.plugins.PluginManager.collectPlugins(PluginManager.java:154)
    at
org.apache.logging.log4j.core.config.plugins.PluginManager.collectPlugins(PluginManager.java:125)
    at
org.apache.logging.log4j.core.pattern.PatternParser.<init>(PatternParser.java:107)
    at
org.apache.logging.log4j.core.layout.PatternLayout.createPatternParser(PatternLayout.java:156)
    at
org.apache.logging.log4j.core.layout.PatternLayout.<init>(PatternLayout.java:109)
    at
org.apache.logging.log4j.core.layout.PatternLayout.createLayout(PatternLayout.java:193)
    at
org.apache.logging.log4j.core.config.DefaultConfiguration.<init>(DefaultConfiguration.java:48)
    at
org.apache.logging.log4j.core.LoggerContext.<init>(LoggerContext.java:49)
    at
org.apache.logging.log4j.core.selector.ClassLoaderContextSelector.locateContext(ClassLoaderContextSelector.java:161)
    at
org.apache.logging.log4j.core.selector.ClassLoaderContextSelector.getContext(ClassLoaderContextSelector.java:104)
    at
org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:73)
    at
org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:30)
    at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:138)
    at de.simo.Log4j2FlumeEmbedded.main(Log4j2FlumeEmbedded.java:22)
"

Can anybody create a very small project (just 1 message with a embedded
agent) to show me what i have to do? :/
To use other appender is very easy, but the flume appender...
thank you



2012/11/13 Ralph Goers <ralph.goers@dslextreme.com>

> It looks like you are missing the dependency for avro.  I haven't done the
> best job at listing the exact dependencies needed for both the Remote and
> embedded appenders.  I will try to add that to the wiki but I won't be able
> to get to it until tonight at the earliest.
>
> Ralph
>
> On Nov 13, 2012, at 7:32 AM, Simon Monecke wrote:
>
> > Hi,
> >
> > i want to use the flume-appender, but it doesn't work.
> >
> > my config:
> > "
> > <?xml version="1.0" encoding="UTF-8"?>
> > <configuration status="warn" verbose="true">
> >  <appenders>
> >    <Flume name="eventLogger" suppressExceptions="false" compress="true">
> >      <Agent host="localhost" port="44444"/>
> >      <PatternLayout pattern="%m%n"/>
> >    </Flume>
> >  </appenders>
> >  <loggers>
> >    <root level="error">
> >      <appender-ref ref="eventLogger"/>
> >    </root>
> >  </loggers>
> > </configuration>
> > "
> >
> > my pom:
> > "
> > ...
> >    <dependencies>
> >        <dependency>
> >            <groupId>org.apache.logging.log4j</groupId>
> >            <artifactId>log4j-api</artifactId>
> >            <version>2.0-beta2</version>
> >        </dependency>
> >        <dependency>
> >            <groupId>org.apache.logging.log4j</groupId>
> >            <artifactId>log4j-core</artifactId>
> >            <version>2.0-beta2</version>
> >        </dependency>
> >        <dependency>
> >            <groupId>org.apache.logging.log4j</groupId>
> >            <artifactId>log4j-flume-ng</artifactId>
> >            <version>2.0-alpha2</version>
> >        </dependency>
> >    </dependencies>
> > ...
> > "
> > my Log4j2FlumeEmbedded.java:
> > "
> > ...
> >        Logger logger = LogManager.getLogger(Log4j2FlumeEmbedded.class);
> >
> >        String text = "Test";
> >        long timeOfFirstLog = System.nanoTime();
> >        for (int i = 0; i < countOfLogs; i++) {
> >            logger.error(text);
> > ...
> > "
> >
> > i try
> > "java -cp
> >
> ./log4j2flumeembedded-0.0.1-SNAPSHOT.jar:./lib/log4j-api-2.0-beta2.jar:./lib/log4j-core-2.0-beta2.jar:./lib/log4j-flume-ng-2.0-beta2.jar:./apache-flume-1.2.0/lib/flume-ng-sdk-1.2.0.jar
> > de.simo.Log4j2FlumeEmbedded 10"
> >
> > and i got many errors:
> > "
> > 2012-11-13 16:17:08,270 ERROR Unable to invoke method createAppender in
> > class org.apache.logging.log4j.flume.appender.FlumeAppender for element
> > Flume java.lang.reflect.InvocationTargetException
> >    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> >    at
> >
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> >    at
> >
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> >    at java.lang.reflect.Method.invoke(Method.java:616)
> >    at
> >
> org.apache.logging.log4j.core.config.BaseConfiguration.createPluginObject(BaseConfiguration.java:686)
> >    at
> >
> org.apache.logging.log4j.core.config.BaseConfiguration.createConfiguration(BaseConfiguration.java:454)
> >    at
> >
> org.apache.logging.log4j.core.config.BaseConfiguration.createConfiguration(BaseConfiguration.java:446)
> >    at
> >
> org.apache.logging.log4j.core.config.BaseConfiguration.doConfigure(BaseConfiguration.java:152)
> >    at
> >
> org.apache.logging.log4j.core.config.BaseConfiguration.start(BaseConfiguration.java:110)
> >    at
> >
> org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:251)
> >    at
> >
> org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:267)
> >    at
> > org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:134)
> >    at
> >
> org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:75)
> >    at
> >
> org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:30)
> >    at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:138)
> >    at de.simo.Log4j2FlumeEmbedded.main(Log4j2FlumeEmbedded.java:19)
> > Caused by: java.lang.NoClassDefFoundError:
> > org/apache/avro/AvroRemoteException
> >    at
> >
> org.apache.logging.log4j.flume.appender.FlumeAppender.createAppender(FlumeAppender.java:173)
> >    ... 16 more
> > Caused by: java.lang.ClassNotFoundException:
> > org.apache.avro.AvroRemoteException
> >    at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
> >    at java.security.AccessController.doPrivileged(Native Method)
> >    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
> >    at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
> >    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
> >    at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
> >    ... 17 more
> >
> > Null object returned for Flume
> > Exception in thread "main" java.lang.NullPointerException
> >    at
> >
> org.apache.logging.log4j.core.config.BaseConfiguration.createPluginObject(BaseConfiguration.java:591)
> >    at
> >
> org.apache.logging.log4j.core.config.BaseConfiguration.createConfiguration(BaseConfiguration.java:454)
> >    at
> >
> org.apache.logging.log4j.core.config.BaseConfiguration.doConfigure(BaseConfiguration.java:152)
> >    at
> >
> org.apache.logging.log4j.core.config.BaseConfiguration.start(BaseConfiguration.java:110)
> >    at
> >
> org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:251)
> >    at
> >
> org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:267)
> >    at
> > org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:134)
> >    at
> >
> org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:75)
> >    at
> >
> org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:30)
> >    at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:138)
> >    at de.simo.Log4j2FlumeEmbedded.main(Log4j2FlumeEmbedded.java:19)
> > "
> >
> > What can i do? :/ The user guide is a little bit to short.
> >
> > Regards,
> > Simon
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
> For additional commands, e-mail: log4j-user-help@logging.apache.org
>
>

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