AFAIK there is no easy way to get the mail jars in the geronimo startup classloader, although you might try lib/endorsed.

I don't know anything about the internal structure of log4j but I wonder, if there is a way to register an appender in code, if the simplest and least invasive solution would be to write a geronimo gbean to register the appender directly? You'd lose log output up to the point where that gbean started.

thanks
david jencks


On Jul 25, 2007, at 1:23 PM, Geronimo User wrote:

Could I have some pointers on how to use an SMTPAppender in the
server-log4j.properties in Geronimo.

I have my appender defined like this:

log4j.rootCategory=INFO, CONSOLE, FILE, MAIL

...

log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender
log4j.appender.MAIL.SMTPHost=my.smtphost.com
[EMAIL PROTECTED]
[EMAIL PROTECTED]
log4j.appender.MAIL.BufferSize=1
log4j.appender.MAIL.LocationInfo=true
log4j.appender.MAIL.Level=ERROR

I imagine my problem (see below) is because I'm missing mail.jar and
activation.jar somewhere.

I've tried putting these .jar files, obtained from elsewhere, in
geronimo-1.1.1/lib or geronimo-1.1.1/lib/ext but still see the error
below.

When I start Geronimo with this appender in the properties file, with
or without the above .jar files available, it says:

2007-07-25 16:07:36,429 ERROR [GBeanInstanceState] Error while
starting; GBean is now in the FAILED state:
abstractName="geronimo/j2ee-system/1.1.1/car?ServiceModule=geronimo/ j2ee-system/1.1.1/car,j2eeType=SystemLog,name=Logger"
java.lang.NoClassDefFoundError:
        at java.lang.Class.getDeclaredConstructors0(Native Method)
        at java.lang.Class.privateGetDeclaredConstructors(Class.java:2357)
        at java.lang.Class.getConstructor0(Class.java:2671)
        at java.lang.Class.newInstance0(Class.java:321)
        at java.lang.Class.newInstance(Class.java:303)
at org.apache.log4j.helpers.OptionConverter.instantiateByClassName (OptionConverter.java:319) at org.apache.log4j.helpers.OptionConverter.instantiateByKey (OptionConverter.java:112) at org.apache.log4j.PropertyConfigurator.parseAppender (PropertyConfigurator.java:620) at org.apache.log4j.PropertyConfigurator.parseCategory (PropertyConfigurator.java:603) at org.apache.log4j.PropertyConfigurator.configureRootCategory (PropertyConfigurator.java:500) at org.apache.log4j.PropertyConfigurator.doConfigure (PropertyConfigurator.java:406) at org.apache.log4j.PropertyConfigurator.doConfigure (PropertyConfigurator.java:432) at org.apache.geronimo.system.logging.log4j.URLConfigurator.doConfigure (URLConfigurator.java:117) at org.apache.geronimo.system.logging.log4j.URLConfigurator.configure (URLConfigurator.java:44) at org.apache.geronimo.system.logging.log4j.Log4jService.reconfigure (Log4jService.java:519) at org.apache.geronimo.system.logging.log4j.Log4jService.doStart (Log4jService.java:562) at org.apache.geronimo.gbean.runtime.GBeanInstance.createInstance (GBeanInstance.java:981) at org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart( GBeanInstanceState.java:267) at org.apache.geronimo.gbean.runtime.GBeanInstanceState.start (GBeanInstanceState.java:102) at org.apache.geronimo.gbean.runtime.GBeanInstance.start (GBeanInstance.java:526) at org.apache.geronimo.gbean.runtime.GBeanDependency.attemptFullStart (GBeanDependency.java:111) at org.apache.geronimo.gbean.runtime.GBeanDependency.addTarget (GBeanDependency.java:146) at org.apache.geronimo.gbean.runtime.GBeanDependency$1.running (GBeanDependency.java:120) at org.apache.geronimo.kernel.basic.BasicLifecycleMonitor.fireRunningEven t(BasicLifecycleMonitor.java:173) at org.apache.geronimo.kernel.basic.BasicLifecycleMonitor.access $300(BasicLifecycleMonitor.java:41) at org.apache.geronimo.kernel.basic.BasicLifecycleMonitor $RawLifecycleBroadcaster.fireRunningEvent (BasicLifecycleMonitor.java:251) at org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart( GBeanInstanceState.java:292) at org.apache.geronimo.gbean.runtime.GBeanInstanceState.start (GBeanInstanceState.java:102) at org.apache.geronimo.gbean.runtime.GBeanInstanceState.startRecursive (GBeanInstanceState.java:124) at org.apache.geronimo.gbean.runtime.GBeanInstance.startRecursive (GBeanInstance.java:540) at org.apache.geronimo.kernel.basic.BasicKernel.startRecursiveGBean (BasicKernel.java:379) at org.apache.geronimo.kernel.config.ConfigurationUtil.startConfiguration GBeans(ConfigurationUtil.java:374) at org.apache.geronimo.kernel.config.ConfigurationUtil.loadBootstrapConfi guration(ConfigurationUtil.java:155) at org.apache.geronimo.kernel.config.ConfigurationUtil.loadBootstrapConfi guration(ConfigurationUtil.java:126)
        at org.apache.geronimo.system.main.Daemon.doStartup(Daemon.java:253)
        at org.apache.geronimo.system.main.Daemon.<init>(Daemon.java:74)
        at org.apache.geronimo.system.main.Daemon.main(Daemon.java:377)

Thanks.

Reply via email to