Hi Ralph, I'm not actually using log4j2 for an application, it's just simple class where I've some logging statements which need to go on HDFS(Hadoop Distributed File System) And flume does this job, am I right? After you mentioned maven, I searched a bit about maven and found out that it is normally used for large projects to automate build process. Since I've not used maven I've to invest some time on it. You mean to say even for a simple class which logs some statements i need to use maven. Can I do this without maven ? I'm asking too many questions in order to make sure that I'm not on wrong track..!!
Pradeep -----Original Message----- From: Ralph Goers [mailto:[email protected]] Sent: Thursday, December 27, 2012 2:00 PM To: Log4J Users List Subject: Re: Flume Appender For information on Maven see http://maven.apache.org. It is a build tool used by lots and lots of Java projects. Most of those other Appenders only have dependencies on the JDK, which is why they are part of the core and Flume is in a separate subproject. The default configuration for using Flume in Log4j is to use the Avro protocol to send the events to a Flume agent. Flume also uses Netty to handle the transport layer. Those are projects separate from Log4j 2 and Flume and as you can see they have dependencies of their own. So yes, if you want to use the Avro sink to publish to a Flume agent you will need all those jars. If you were using Maven as your build tool it would handle all this for you. If you use Ant you can use Ivy to accomplish something similar. Ralph On Dec 26, 2012, at 11:23 PM, Pradeep Kanchgar wrote: > Hi Ralph, > > I'm using this log4j2 for the first time. What is this maven? With log4j2 if > I use other appenders like console or rollingfileappender it works fine. > But in case of this flumeappender, I don't have much clarity. You > mean to say in order to use flume appender I need all these jar like > Jackson,snappy, jetty..etc > > > > -----Original Message----- > From: Ralph Goers [mailto:[email protected]] > Sent: Thursday, December 27, 2012 11:51 AM > To: Log4J Users List > Subject: Re: Flume Appender > > Running mvn dependency:tree in samples/flume-remote yields > > [INFO] --- maven-dependency-plugin:2.1:tree (default-cli) @ > flume-remote --- [INFO] > org.apache.logging.log4j.samples:flume-remote:war:2.0-beta4-SNAPSHOT > [INFO] +- > org.apache.logging.log4j.samples:flume-common:jar:2.0-beta4-SNAPSHOT:c > ompile [INFO] +- > org.apache.logging.log4j:log4j-api:jar:2.0-beta4-SNAPSHOT:compile > [INFO] +- > org.apache.logging.log4j:log4j-core:jar:2.0-beta4-SNAPSHOT:compile > [INFO] +- > org.apache.logging.log4j.adapters:log4j-web:jar:2.0-beta4-SNAPSHOT:com > pile [INFO] | +- org.slf4j:slf4j-api:jar:1.7.2:compile > [INFO] | \- org.slf4j:slf4j-ext:jar:1.7.2:compile > [INFO] | \- ch.qos.cal10n:cal10n-api:jar:0.7.4:compile > [INFO] +- > org.apache.logging.log4j.adapters:log4j-flume-ng:jar:2.0-beta4-SNAPSHO > T:compile [INFO] | \- org.apache.flume:flume-ng-sdk:jar:1.2.0:compile > [INFO] | +- org.apache.avro:avro:jar:1.6.3:compile > [INFO] | | +- org.codehaus.jackson:jackson-core-asl:jar:1.9.2:compile > (version managed from 1.8.8) > [INFO] | | +- org.codehaus.jackson:jackson-mapper-asl:jar:1.9.2:compile > (version managed from 1.8.8) > [INFO] | | +- com.thoughtworks.paranamer:paranamer:jar:2.3:compile > [INFO] | | \- org.xerial.snappy:snappy-java:jar:1.0.4.1:compile > [INFO] | +- org.apache.avro:avro-ipc:jar:1.6.3:compile > [INFO] | | +- org.mortbay.jetty:jetty:jar:6.1.26:compile > [INFO] | | +- org.mortbay.jetty:jetty-util:jar:6.1.26:compile > [INFO] | | +- org.jboss.netty:netty:jar:3.2.7.Final:compile > [INFO] | | \- org.apache.velocity:velocity:jar:1.7:compile > [INFO] | | \- > commons-collections:commons-collections:jar:3.2.1:compile > [INFO] | +- commons-io:commons-io:jar:2.1:compile > [INFO] | \- org.mortbay.jetty:servlet-api:jar:2.5-20110124:compile > [INFO] +- org.springframework:spring-beans:jar:3.1.2.RELEASE:compile > [INFO] +- org.springframework:spring-core:jar:3.1.2.RELEASE:compile > [INFO] | +- org.springframework:spring-asm:jar:3.1.2.RELEASE:compile > [INFO] | \- commons-logging:commons-logging:jar:1.1.1:compile > [INFO] +- org.springframework:spring-webmvc:jar:3.1.2.RELEASE:compile > [INFO] | +- > org.springframework:spring-context:jar:3.1.2.RELEASE:compile > [INFO] | +- > org.springframework:spring-context-support:jar:3.1.2.RELEASE:compile > [INFO] | +- > org.springframework:spring-expression:jar:3.1.2.RELEASE:compile > [INFO] | \- org.springframework:spring-web:jar:3.1.2.RELEASE:compile > [INFO] | \- aopalliance:aopalliance:jar:1.0:compile > [INFO] +- > org.springframework.ws:spring-ws-core:jar:2.1.0.RELEASE:compile > [INFO] | +- > org.springframework.ws:spring-xml:jar:2.1.0.RELEASE:compile > [INFO] | +- org.springframework:spring-aop:jar:3.1.1.RELEASE:compile > [INFO] | +- org.springframework:spring-oxm:jar:3.1.1.RELEASE:compile > [INFO] | | \- commons-lang:commons-lang:jar:2.5:compile > [INFO] | \- wsdl4j:wsdl4j:jar:1.6.1:compile [INFO] +- > javax.servlet:servlet-api:jar:2.4:provided > [INFO] \- junit:junit:jar:4.3.1:test > > From this you can see that avro requires jackson and several other jars. In > addition, you have included avro 1.4.1 while the above shows avro 1.6.3. In > looking at the source for Avro 1.4.1 it does not define that particular class > so you will need a more current version. > > Ralph > > > > > > > On Dec 26, 2012, at 8:56 PM, Pradeep Kanchgar wrote: > >> >> Hi , >> >> I'm using flume Appender but getting the following error. >> >> 2012-12-26 19:08:41,566 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(Unknown Source) at >> sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at >> java.lang.reflect.Method.invoke(Unknown Source) at >> org.apache.logging.log4j.core.config.BaseConfiguration.createPluginOb >> j >> ect(BaseConfiguration.java:711) at >> org.apache.logging.log4j.core.config.BaseConfiguration.createConfigur >> a >> tion(BaseConfiguration.java:477) at >> org.apache.logging.log4j.core.config.BaseConfiguration.createConfigur >> a >> tion(BaseConfiguration.java:469) at >> org.apache.logging.log4j.core.config.BaseConfiguration.doConfigure(Ba >> s >> eConfiguration.java:156) at >> org.apache.logging.log4j.core.config.BaseConfiguration.start(BaseConf >> i >> guration.java:114) at >> org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerCo >> n >> text.java:251) at >> org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext. >> java:267) at >> org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java: >> 1 >> 34) at >> org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log >> 4 >> jContextFactory.java:75) at >> org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log >> 4 >> jContextFactory.java:30) at >> org.apache.logging.log4j.LogManager.getLogger(LogManager.java:165) >> at log4jExample.<clinit>(log4jExample.java:8) >> Caused by: java.lang.NoClassDefFoundError: >> org/apache/avro/AvroRemoteException >> at >> org.apache.logging.log4j.flume.appender.FlumeAppender.createAppender( >> F >> lumeAppender.java:173) >> ... 16 more >> Caused by: java.lang.ClassNotFoundException: >> org.apache.avro.AvroRemoteException >> at java.net.URLClassLoader$1.run(Unknown Source) at >> java.security.AccessController.doPrivileged(Native Method) at >> java.net.URLClassLoader.findClass(Unknown Source) at >> java.lang.ClassLoader.loadClass(Unknown Source) at >> sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at >> java.lang.ClassLoader.loadClass(Unknown Source) ... 17 more >> >> 2012-12-26 19:08:41,567 ERROR Null object returned for Flume in >> appenders >> 2012-12-26 19:08:41,577 ERROR Unable to locate appender eventLogger >> for logger >> >> my config file : log4j2.xml is >> >> <?xml version="1.0" encoding="UTF-8"?> <configuration status="warn" >> name="log4jExample" packages=""> <appenders> <Flume name="eventLogger" >> suppressExceptions="false" compress="true"> <Agent >> host="172.20.104.226" port="41414"/> <PatternLayout pattern="%m%n"/> >> </Flume> </appenders> <loggers> <root level="error"> <appender-ref >> ref="eventLogger"/> </root> </loggers> </configuration> >> >> my java file is >> >> >> public class log4jExample{ >> /* Get actual class name to be printed on */ static Logger log = >> LogManager.getLogger( >> log4jExample.class.getName()); >> >> public static void main(String[] args) >> throws Exception{ >> >> for (int i = 0; i < 100 ; i++) { >> log.trace("Entering the Application"); >> log.debug("Current data unavailalbe, using cached values"); >> log.info("Hello this is an info message"); >> log.error("Dabase unavaliable, connetion lost"); >> log.warn("Attention!! Application running in debugmode"); >> log.trace("Existing the Application"); >> } >> >> } >> } >> >> I've added all the log4j2 jar files in classpath variable in ~/.bashrc file. >> but still getting same error and I've already wasted an entire day in >> resolving this, but no solution yet. >> And apache avro jar(avro-1.4.1.jar) is also in classpath. >> >> Still the problem persists. >> >> I've these jar files in my classpath : log4j12-api-2.0-beta3.jar, >> log4j-core-2.0-beta3.jar, log4j-flume-ng-2.0-beta3.jar, >> log4j-jcl-2.0-beta3.jar, log4j-slf4j-impl-2.0-beta3.jar, avro-1.4.1.jar. >> >> >> Regards, >> Pradeep Kanchgar >> >> >> ________________________________ >> The contents of this e-mail and any attachment(s) may contain confidential >> or privileged information for the intended recipient(s). Unintended >> recipients are prohibited from taking action on the basis of information in >> this e-mail and using or disseminating the information, and must notify the >> sender and delete it from their system. L&T Infotech will not accept >> responsibility or liability for the accuracy or completeness of, or the >> presence of any virus or disabling code in this e-mail" > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
