Hi Sam,

Logger is not speculative. Logger *is* Category. Here is the 
actual (real) code of Logger:

package org.apache.log4j;

public class Logger extends Category {

  protected 
  Logger(String name) {
    super(name);
  }

  static
  public
  Logger getLogger(String name) {
    return LogManager.getLogger(name);
  }


  static
  public
  Logger getLogger(Class clazz) {
    return LogManager.getLogger(clazz.getName());
  }

  public
  static 
  Logger getRootLogger() {
    return LogManager.getRootLogger();
  }
}

Let me emphasize that the goal in the change is not to 
replicate the JSR47 API but to adopt a more widely accepted name 
(Logger instead of Category). I don't expect any changes in Logger 
even if JSR47 changes -- famous last words!

This is from Category.java:

   This class has been deprecated and replaced by the {@link Logger} 
   <em>subclass</em>.</b> It will be kept around to preserve backward 
   compatibility until early 2003.
   
   <p><code>Logger</code> is a subclass of Category, i.e. it extends
   Category. In other words, a logger <em>is</em> a category. Thus,
   all operations that can be performed on a category can be performed
   on a logger. Whenever log4j is asked to produce a Category object,
   it will instead produce a Logger object. However, methods that
   previously accepted category objects still continue to accept
   category objects.
   
   <p>For example, the following are all legal and will work as expected.

   <pre>
   // Deprecated forms:
   Category cat = Category.getInstance("foo.bar")
   Logger logger = Logger.getInstance("foo.bar")
   Category cat = Logger.getLogger("foo.bar")

   // Preferred form for retrieving loggers:
   Logger logger = Logger.getLogger("foo.bar")
   </pre>

   <p>The first tree forms are deprecated and should be avoided.
  
   <p><b>There is absolutely no need for new client code to use or
   refer to the <code>Category</code> class.</b> Please avoid
   referring to it or using it.
   
After log4j 1.2 comes out users should not use the Category class at all.
The deprecation of Category.getInstance and Category.getRoot helps to push
that point across.

All the new code that I write (outside log4j) uses Logger and a pre-alpha 
version of log4j. It all works just fine because Logger is Category.

Does this make more sense? Cheers, Ceki

ps: I just committed the un-deprecation change you requested. 
 
At 13:42 10.09.2001 -0400, Sam Ruby wrote:
>Ceki Gülcü wrote:
>>
>>>What is the target date for removal of these methods?
>>
>> Err, 1Q 2003 (no joke).
>>
>>  [snip]
>>
>> I think that
>> the @deprecation flags should be reintroduced before log4j 1.2
>> alpha/beta/whatever is released.
>
>I guess my question is, given the target date, what's the rush?
>
>> Gump is tremendously useful. However, there was no intention to get
>> the "word" out through Gump. See below.
>
>What message do you *WANT* to get out?
>
>In other projects, I have built two branches - one stable, and one
>speculative.  Should I consider doing something similar here?  Given what
>you have said so far (particularly, given the rather distant target), what
>I would recommend is a release or two where both API's are equally
>supported, followed by a period of deprecation, followed by the removal of
>one vs. the other.
>
>I guess what I am saying is that from my point of view, for the moment,
>Category is stable and dependanble.  Logger is speculative and may see
>minor changes over the next log4j release or so (particularly if JSR 47
>changes).  Depending on their needs, 1.2 users may want to prefer one over
>the other.  Eventually, however Category will be deprecated and ultimately
>removed.  Is this a fair assessment of the current situation?
>
>- Sam Ruby
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: [EMAIL PROTECTED]
>For additional commands, e-mail: [EMAIL PROTECTED]

--
Ceki Gülcü - http://qos.ch


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

Reply via email to