Clay,

Multiple hierarchy management is one of the most advanced log4j topics and was only 
recently introduced. 

The answer to you question is seemingly easy.

To create a new hierarchy do:

  Hierarchy h = new Hierarchy(new RootCategory(Priority.WHATEVER));

the constructor for the org.apache.log4j.spi.RootCategory is public. 

RootCategory extends Category and surprisingly not the other way around. The rationale 
behind this is that the RootCategory is a just a category that provides a few 
guarantees: like always having a set priority and not having any parents, other than 
that, it is  a Category like any other. To preserve those safeguards at all costs, the 
RootCategory class is final and cannot be extended.

I could have done it the other way around: Category extending RootCategory. That would 
have no tangible benefits but force RootCategory to be non-final.

The Hierarchy constructor requires a Category object and not a RootCategory. This 
initially confuses users who want to manage their own hierarchies like yourself. Since 
custom hierarchy management is an advanced topic I wanted to leave such users the 
liberty of using their own custom Category class. If the Hierarchy constructor was 
declared

  public
  Hierarchy(RootCategory root) 

then there would be less confusion but that would also impose the RootCategory at the 
top. The way things are today you can have FooRootCategory (possibly final) extending 
FooCategory extending Category and place FooRootCategory at the root or top of a 
custom hierarchy.

I hope that helps, Ceki

At 09:32 23.03.2001 -0600, Johnson, Clay wrote:
>I am running in a JVM that may contain other applications, and I need to
>configure log4j such that my logging environment is isolated from others.
>Documentation in the Hierarchy class (v1.1b1) indicates a solution in the
>form of a "non-default" (my wording) hierarchy, but I'm having difficulty
>figuring how to go about it.  In particular, the constructor for Hierarchy
>requires a Category, but the Category constructor is protected, and it's
>static factory methods would seem to apply to the default hierarchy.  The
>circularity is confusing.
>
>I would appreciate a hint or pointer to an example how to isolate logging in
>a shared JVM.
>
>Thanks,
>Clay
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: [EMAIL PROTECTED]
>For additional commands, e-mail: [EMAIL PROTECTED]


I hope to see you at my ApacheCon 2001 presentation 
entitled "Log4j, A Logging Package for Java".

See http://ApacheCon.Com/2001/US/ for more details.

--
Ceki Gülcü          Web: http://qos.ch     
                email: [EMAIL PROTECTED] (preferred)
                         [EMAIL PROTECTED]


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

Reply via email to