t0xa / gelfj

Graylog Extended Log Format (GELF) implementation in Java and log4j appender without any dependencies.
https://github.com/t0xa/gelfj/wiki
Other
186 stars 116 forks source link

Problem with the how to article #94

Open lnix1988 opened 8 years ago

lnix1988 commented 8 years ago

Hello,

I'm a beginner and have trouble with the implementation of graylog2.

My AM-Q doesn't have a pom.xml, so I will use a jar file. I downloaded the jar file gelfj 1.1.7 (http://mvnrepository.com/artifact/org.graylog2/gelfj/1.1.7) and implement the file to my classpath. Then I configurated my graylog2 appender and change the log4j.rootLogger.

But it doesn't work. Didi I forgot something? What is with a graylog handler?

Thank you.

Regards lnix1988

t0xa commented 8 years ago

Hi and welcome!

Did you just download Jar from Maven Central Repo? Is there any reason you are not using Maven to handle dependencies?

Please answer following:

The how-to Wiki page was a bit out of date. Please refer to https://github.com/t0xa/gelfj/blob/master/README.md for all configuration options.

Thanks

lnix1988 commented 8 years ago

Hi, yes, I downloaded the Jar form Maven Central Repo. Yes, unfortunately...

  1. Yes, my graylog2 server is running. I can send a message like:

echo '{"version": "1.1","host":"lab.lnix.de","short_message":"A short message that helps you identify what is going on","full_message":"Backtrace here\n\nmore stuff","level":1,"_user_id":9001,"_some_info":"foo","_some_env_var":"bar"}' | nc -w 1 -u graylog.lnix.de 12201

  1. Yes, log4j is working on my amq server

  2. [...]

log4j.rootLogger=INFO, graylog2

log4j.appender.graylog2=org.graylog2.log.GelfAppender log4j.appender.graylog2.graylogHost=graylog.lnix.de log4j.appender.graylog2.originHost=lab.lnix.de log4j.appender.graylog2.facility=gelf-java log4j.appender.graylog2.layout=org.apache.log4j.PatternLayout log4j.appender.graylog2.extractStacktrace=true log4j.appender.graylog2.addExtendedInformation=true log4j.appender.graylog2.additionalFields={'environment': 'DEV', 'application': 'MyAPP'} [...]

Thanks.

t0xa commented 8 years ago

Hi,

The configuration looks good. May I suggest you try latest library version - 1.1.12 @ https://search.maven.org/remotecontent?filepath=org/graylog2/gelfj/1.1.12/gelfj-1.1.12.jar

I also highly recommend to use Maven or Gradle to handle all your dependencies.

Let me know how it will works.

Regards, Anton

lnix1988 commented 8 years ago

Hello Anton, I replace the gelf jar to 1.1.12 in my classpath but it doesn't work. Following points are different of my configuration:

  1. I rename gelfj-1.1.12.jar to karaf-gelfj-1.1.12.jar
  2. I added my graylog settings to org.ops4j.pax.logging.cfg and not log4j.properties

Is this a problem?

Did I add the karaf-gelfj-1.1.12.jar to my startup.properties?

Regards lnix

lnix1988 commented 8 years ago

Hello Anton. I get the following errors:

./karaf server Please wait, JBoss A-MQ is initializing... 7% [=====> ]log4j:ERROR Could not instantiate class [org.graylog2.log.GelfAppender]. java.lang.ClassNotFoundException: org.graylog2.log.GelfAppender not found by org.ops4j.pax.logging.pax-logging-service [4] at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1556) at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:77) at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1993) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:190) at org.apache.log4j.helpers.Loader.loadClass(Loader.java:198) at org.apache.log4j.helpers.OptionConverter.instantiateByClassName(OptionConverter.java:326) at org.apache.log4j.helpers.OptionConverter.instantiateByKey(OptionConverter.java:123) at org.apache.log4j.PaxLoggingConfigurator.parseAppender(PaxLoggingConfigurator.java:97) at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:735) at org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:615) at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:502) at org.apache.log4j.PaxLoggingConfigurator.doConfigure(PaxLoggingConfigurator.java:72) at org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl.updated(PaxLoggingServiceImpl.java:214) at org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl$1ManagedPaxLoggingService.updated(PaxLoggingServiceImpl.java:362) at org.apache.felix.cm.impl.helper.ManagedServiceTracker.updated(ManagedServiceTracker.java:189) at org.apache.felix.cm.impl.helper.ManagedServiceTracker.updateService(ManagedServiceTracker.java:152) at org.apache.felix.cm.impl.helper.ManagedServiceTracker.provideConfiguration(ManagedServiceTracker.java:85) at org.apache.felix.cm.impl.ConfigurationManager$UpdateConfiguration.run(ConfigurationManager.java:1747) at org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:103) at java.lang.Thread.run(Thread.java:744) log4j:ERROR Could not instantiate appender named "graylog2". 100% [========================================================================]

t0xa commented 8 years ago

Hi @lnix1988, Looking at the message the library is still not found in the classpath.

lnix1988 commented 8 years ago

which library? The jar file (karaf-gelfj-1.1.12.jar) is in my classpath. I can see it with ps aux |grep java |grep karaf-gelfj-1.1.12.jar