I have tried your suggestions and extended the filter class instead of
Category.  But Whenever JBoss starts we still get a NoClassDefFoundError (
Which I have attached ). The custom filter is in a jar and has been placed
in [JBOSS]/lib/ext. This error occurs when we set a classpath entry to this
jar. If no classpath entry is set, we get a different ClassNotFoundException
for the new filter class we created.

Other posts on this topic lead me to believe it's a classloader problem with
JBoss / log4j. Does anybody have some experience here they could share?

We are using Jboss 2.4.3.

Tom

================================
java.lang.NoClassDefFoundError: org/apache/log4j/spi/Filter
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:486)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:111)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:248)
at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:297)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:286)
at java.lang.ClassLoader.loadClass(ClassLoader.java:290)
at java.lang.ClassLoader.loadClass(ClassLoader.java:253)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:313)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:120)
at
org.apache.log4j.helpers.OptionConverter.instantiateByClassName(OptionConver
ter.java:301)
at
org.apache.log4j.xml.DOMConfigurator.parseFilters(DOMConfigurator.java:246)
at
org.apache.log4j.xml.DOMConfigurator.parseAppender(DOMConfigurator.java:178)
at
org.apache.log4j.xml.DOMConfigurator.findAppenderByReference(DOMConfigurator
.java:137)
at
org.apache.log4j.xml.DOMConfigurator.parseChildrenOfCategoryElement(DOMConfi
gurator.java:354)
at
org.apache.log4j.xml.DOMConfigurator.parseCategory(DOMConfigurator.java:310)
at org.apache.log4j.xml.DOMConfigurator.parse(DOMConfigurator.java:684)
at
org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:586)
at
org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:520)
at org.apache.log4j.xml.XMLWatchdog.doOnChange(DOMConfigurator.java:718)
at
org.apache.log4j.helpers.FileWatchdog.checkAndConfigure(FileWatchdog.java:80
)
at org.apache.log4j.helpers.FileWatchdog.<init>(FileWatchdog.java:49)
at org.apache.log4j.xml.XMLWatchdog.<init>(DOMConfigurator.java:710)
at
org.apache.log4j.xml.DOMConfigurator.configureAndWatch(DOMConfigurator.java:
510)
at org.jboss.logging.Log4jService.start(Log4jService.java:120)
at org.jboss.logging.Log4jService.preRegister(Log4jService.java:189)
at
com.sun.management.jmx.MBeanServerImpl.preRegisterInvoker(MBeanServerImpl.ja
va:2245)
at
com.sun.management.jmx.MBeanServerImpl.createMBean(MBeanServerImpl.java:765)
at javax.management.loading.MLet.getMBeansFromURL(MLet.java:540)
at javax.management.loading.MLet.getMBeansFromURL(MLet.java:369)
at org.jboss.Main.<init>(Main.java:193)
at org.jboss.Main$1.run(Main.java:127)
at java.security.AccessController.doPrivileged(Native Method)
at org.jboss.Main.main(Main.java:123)

================================


 -----Original Message-----
From:   Mark Womack [mailto:[EMAIL PROTECTED]]
Sent:   January 29, 2002 7:06 PM
To:     'Log4J Developers List'
Subject:        RE: log4J / JBoss

Tom,

You might want to look at using the NDC or MDC classes to store your user
code.  Then you could use a custom filter to print or not print a message
based on the value of the NDC or MDC.

-Mark

-----Original Message-----
From: Tom Innes [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, January 29, 2002 3:23 PM
To: 'Log4J Developers List'
Subject: RE: log4J / JBoss


Hi Ceki,

Maybe you can suggest a better alternative to what we are trying to
accomplish.  We want to log the user code associated with a log message.
Hence the reason we where trying to extend the category class.  Working in a
multi-user environment we want all error messages to include the user code.
In addition we want to be able to selectively turn on debug messages for a
particular user by altering the properties file.  When we do so, we only
want the debug messages for that user.

Any suggestions would be appreciated.

Tom

 -----Original Message-----
From:   Ceki Gülcü [mailto:[EMAIL PROTECTED]]
Sent:   January 29, 2002 5:52 PM
To:     Log4J Developers List
Subject:        Re: log4J / JBoss


Tom,

Do not extend the Category class and your problems will go away. Extending
the
category class is (almost) always a bad idea.

Regards, Ceki


At 17:11 29.01.2002 -0500, you wrote:
>Hello,
>
>I'm not sure if this is the correct place to ask this question, but if not,
>I apologize.
>
>Can anyone assist me in getting log4j to work properly with JBoss 2.4.3? We
>are extending the Category class with a our own. This works fine as a
>standalone java program. We are having problems, however, getting it to
work
>with JBoss.
>
>The log4j.properties file looks like the following:
>
>########################################################
># A log4j properties file suitable for replacing the
># default JBoss ConsoleLogging & FileLogging mbeans.
>
># Set the JBossCategoryFactory as the default CategoryFactory
>log4j.categoryFactory=org.jboss.logging.log4j.JBossCategory$JBossCategoryFa
c
>tory
>
>log4j.rootCategory=DEBUG, Default, Console
>
>### The server.log file appender
>log4j.appender.Default=org.apache.log4j.FileAppender
>log4j.appender.Default.File=../log/server.log
>log4j.appender.Default.layout=org.apache.log4j.PatternLayout
># Use the default JBoss format
>log4j.appender.Default.layout.ConversionPattern=[%c{1}] %m%n
># Truncate if it aleady exists.
>log4j.appender.Default.Append=false
>#Example of turning off logging for a category. Uncomment to turn off.
>#log4j.category.DefaultDS=FATAL
>
>### The console appender
>log4j.appender.Console=org.jboss.logging.log4j.ConsoleAppender
>log4j.appender.Console.Threshold=INFO
>log4j.appender.Console.layout=org.apache.log4j.PatternLayout
>log4j.appender.Console.layout.ConversionPattern=[%c{1}] %m%n
>
># Example of only showing INFO msgs for any categories under org.jboss.util
>#log4j.category.org.jboss.util=INFO
>
># An example of enabling the custom TRACE level priority that is used
># by the JBoss internals to diagnose low level details. This example
># turns on TRACE level msgs for the org.jboss.ejb.plugins package and its
># subpackages. This will produce A LOT of logging output.
>#log4j.category.org.jboss.ejb.plugins=TRACE#org.jboss.logging.log4j.TracePr
i
>ority
>
>
>
># EJBEnterprise Changes FOLLOW..........
>
># A log4j properties file suitable for replacing the
># default JBoss ConsoleLogging & FileLogging mbeans.
>
># Set the JBossCategoryFactory as the default CategoryFactory
>#log4j.rootCategory=DEBUG
>
># Following lines have been added for EJBUserCategory
>
># set up the category factory
>log4j.categoryFactory=com.ejbenterprise.util.logging.EJBUserCategoryFactory
>log4j.factory.ejbuser=Greg
>
># set up the appender
>log4j.appender.EJBUserAppender=org.apache.log4j.FileAppender
>log4j.appender.EJBUserAppender.File=FilteredUser.log
>log4j.appender.EJBUserAppender.layout=com.ejbenterprise.util.logging.EJBUse
r
>PatternLayout
>log4j.appender.EJBUserAppender.layout.ConversionPattern=User: %u [%c{1}]
>%m%n
>log4j.appender.EJBUserAppender.Append=false
>
>
># set up logging for a class
>log4j.category.com.ejbenterprise.util.server=DEBUG, EJBUserAppender
>##################################################
>
>
>Now, when the server starts, we are getting ClassNotFoundException for core
>log4j classes like Category, Priority etc. Does anybody know why this
>happens and what the correct way to configure JBoss / log4j is?
>
>-Tom
>
>
>--
>To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
>For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

--
Ceki Gülcü



--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>





--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>





--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to