You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by Glen Daniels <gd...@macromedia.com> on 2001/10/02 15:50:43 UTC

RE: Issue: remove calls to BasicConfigurator in Options.java and Axis Engine.java

Yep, we never finished dealing with this issue.

The question is basically this - we want people to be able to use our
toolkit with minimal setup, and in fact NO setup in most cases.  So we don't
want to force them to have to build a log4j.properties file and drop it
somewhere.  The ideal thing would be able to specify something like "here's
my default hardcoded log4j config, which you should use only IF the default
initialization process failed." - but I didn't see any way to do that.  Is
there a way to query if log4j has already been configured?

Maybe the answer is to put a default log4j.properties at the top level of
the axis.jar file, which we can reasonably expect will be on the classpath.
The problem then becomes getting your own log4j.properties to override that
one requires making sure it shows up first on the classpath, which I'm not
sure you can guarantee in app server environments.

Thoughts?  I'd love to get this nailed.

--Glen

> -----Original Message-----
> From: Mark Roder [mailto:mroder@wamnet.com]
> Sent: Monday, October 01, 2001 10:48 PM
> To: 'axis-dev@xml.apache.org'
> Subject: Issue: remove calls to BasicConfigurator in Options.java and
> Axis Engine.java
> 
> 
> 
> Options.java and AxisEngine have the following code segment:
> 
>     static {
>         BasicConfigurator.configure();
>         Category.getRoot().setPriority(Priority.FATAL);
>     }
> 
> This segment should be removed.  It strongarms the log4j setup and
> applications can not change the behavior.
> 
> I am trying to use axis in a client application talking to an 
> existing soap
> service.  I am using the log4j.properties file in the 
> classpath to setup
> log4j in the default/lazy method.  I was not getting any of my logging
> output because axis did the above calls.
> 
> More information on log4j's default initialization procedure 
> how to setup
> log4j can be found at
> http://jakarta.apache.org/log4j/docs/manual.html#defaultInit
> 
> Later
> 
> Mark
> 

RE: Issue: remove calls to BasicConfigurator in Options.java and Axis Engine.java

Posted by Nelson Minar <ne...@monkey.org>.
>Yep, we never finished dealing with this issue.

This is a pain in the neck with log4j - it stems from log4j's refusal
to have a default configuration. But the static configuration that's
current in Axis is definitely a no-no.

>Is there a way to query if log4j has already been configured?

I think Category.getAllAppenders() may be one way to figure it out.
Not sure that's a good idea, though.

>Maybe the answer is to put a default log4j.properties at the top level of
>the axis.jar file, which we can reasonably expect will be on the classpath.

That's what I did for JXTA. It seems to work for people. I worry it's
a bit too magic - it's not immediately apparent which log4j.properties
gets loaded, and usually the order of your classpath doesn't matter.
But it does seem to work.


Maybe other Jakarta folks have a better idea?

                                                     nelson@monkey.org
.       .      .     .    .   .  . . http://www.media.mit.edu/~nelson/

RE: Issue: remove calls to BasicConfigurator in Options.java and Axis Engine.java

Posted by marc fleury <ma...@jboss.org>.
|Maybe the answer is to put a default log4j.properties at the top level of
|the axis.jar file, which we can reasonably expect will be on the classpath.
|The problem then becomes getting your own log4j.properties to override that
|one requires making sure it shows up first on the classpath, which I'm not

For god's sake not the classpath, the context cl maybe

marcf

|sure you can guarantee in app server environments.
|
|Thoughts?  I'd love to get this nailed.
|
|--Glen
|
|> -----Original Message-----
|> From: Mark Roder [mailto:mroder@wamnet.com]
|> Sent: Monday, October 01, 2001 10:48 PM
|> To: 'axis-dev@xml.apache.org'
|> Subject: Issue: remove calls to BasicConfigurator in Options.java and
|> Axis Engine.java
|>
|>
|>
|> Options.java and AxisEngine have the following code segment:
|>
|>     static {
|>         BasicConfigurator.configure();
|>         Category.getRoot().setPriority(Priority.FATAL);
|>     }
|>
|> This segment should be removed.  It strongarms the log4j setup and
|> applications can not change the behavior.
|>
|> I am trying to use axis in a client application talking to an
|> existing soap
|> service.  I am using the log4j.properties file in the
|> classpath to setup
|> log4j in the default/lazy method.  I was not getting any of my logging
|> output because axis did the above calls.
|>
|> More information on log4j's default initialization procedure
|> how to setup
|> log4j can be found at
|> http://jakarta.apache.org/log4j/docs/manual.html#defaultInit
|>
|> Later
|>
|> Mark
|>