pglezen     01/06/04 21:41:00

  Modified:    src/java/org/apache/log4j/examples/appserver
                        AppServerCategoryFactory.java package.html
  Log:
  1. AppServerCategoryFactory - ctor changed to automatically
       install itself as the default factory for use by the
       AppServerCategory.getInstance(String).
  2. package.html - changed configuration instructions to reflect
       change #1.
  
  Revision  Changes    Path
  1.6       +7 -2      
jakarta-log4j/src/java/org/apache/log4j/examples/appserver/AppServerCategoryFactory.java
  
  Index: AppServerCategoryFactory.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-log4j/src/java/org/apache/log4j/examples/appserver/AppServerCategoryFactory.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- AppServerCategoryFactory.java     2001/06/04 06:15:21     1.5
  +++ AppServerCategoryFactory.java     2001/06/05 04:40:58     1.6
  @@ -52,7 +52,10 @@
     /**
      *  Construct a new <code>AppServerCategoryFactory</code> with 
      *  the provided attributes.  An attempt is made to obtain the
  -   *  hostname from the java.net API.
  +   *  hostname from the java.net API.  This constructor sets the
  +   *  newly created instance as the default factory for future
  +   *  invocations of {@link AppServerCategory#getInstance(String)}
  +   *  via {@link AppServerCategory#setFactory}.
      *
      *  @param categoryName  the name of the category.
      *  @param serverName    the name of the server using this category.  This
  @@ -67,11 +70,13 @@
       try {
         hostname = java.net.InetAddress.getLocalHost().getHostName();
       } catch ( java.net.UnknownHostException uhe ) {
  -      System.err.println("AppServerCategoryFactory: could not determine local 
hostname.");
  +      LogLog.warn("AppServerCategoryFactory: could not determine local hostname.");
       }      
       server    = serverName;
       component = componentName;
       version   = versionName;
  +
  +    AppServerCategory.setFactory(this);
     }
   
     /**
  
  
  
  1.6       +17 -36    
jakarta-log4j/src/java/org/apache/log4j/examples/appserver/package.html
  
  Index: package.html
  ===================================================================
  RCS file: 
/home/cvs/jakarta-log4j/src/java/org/apache/log4j/examples/appserver/package.html,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- package.html      2001/06/04 06:15:22     1.5
  +++ package.html      2001/06/05 04:40:58     1.6
  @@ -55,6 +55,7 @@
   log4j.appender.stdout.layout.ConversionPattern=[%h:%s:%b:%v] %m%n
   </pre></table>
   <p>
  +<!--
   There is <b>no</b> need to change your source code to go from using
   <code>Category</code> to <code>AppServerCategory</code> if you are
   using property files to configure your logging infrastructure.
  @@ -64,6 +65,11 @@
   as the default factory for the hierarchy so that
   {@link org.apache.log4j.Category#getInstance(String)} always returns
   the proper <code>Category</code> subclass.
  +  -->
  +The only change needed to your source file is to invoke the {@link 
  +org.apache.log4j.examples.appserver.AppServerCategory#getInstance(String)}
  +instead of the usual {@link org.apache.log4j.Category#getInstance(String)}
  +to acquire an implementation of <code>Category</code>.
   
   <h3>Manual Configuration</h3>
   You can manually invoke the configuration much like the static
  @@ -73,16 +79,13 @@
   <tr><td><pre>
   import org.apache.log4j.Category;
   import org.apache.log4j.PropertyConfigurator;
  -
  +import org.apache.log4j.examples.appserver.AppServerCategory;
   ...
  -
   PropertyConfigurator.configure("test.properties");
  -Category cat = Category.getInstance("some.cat");
  -
  +Category cat = AppServerCategory.getInstance("some.cat");
   ...
  -
  -cat.info("This is an INFO statement.");</pre>
  -</table>
  +cat.info("This is an INFO statement.");
  +</pre> </table>
   <p>
   <h3>Very Manual Configuration</h3>
   If you want complete control over the configuration process, you
  @@ -90,45 +93,23 @@
   together.  This could be useful if you want only some of your
   categories to be <code>AppServerCategory</code> instances.
   <p>
  -After creating an appropriate <code>AppServerCategoryFactory</code>
  -instance, set a static reference to it using {@link
  -org.apache.log4j.examples.appserver.AppServerCategory#setFactory}.
  -This sets everything up for acquiring an <code>AppServerCategory</code>
  -reference whenever you need one.  When you use this method of
  -configuration, the hierarchy's default factory is left alone.  So
  -you should use {@link 
  -org.apache.log4j.examples.appserver.AppServerCategory#getInstance(String)}
  -to acquire a reference to an <code>AppServerCategory</code> instance.
  +Simply create an <code>AppServerCategoryFactory</code> instance.
  +The constructor automatically installs the new instance as the
  +default factory for future calls to {@link
  +org.apache.log4j.examples.appserver.AppServerCategory#getInstance(String)}.
   <p>
   <table border=1>
   <tr><td><pre>
  -import org.apache.log4j.spi.CategoryFactory;
   import org.apache.log4j.Category;
   import org.apache.log4j.examples.appserver.AppServerCategoryFactory;
   import org.apache.log4j.examples.appserver.AppServerCategory;
  -
   ...
  -
   org.apache.log4j.BasicConfigurator.configure();
  -CategoryFactory factory = new AppServerCategoryFactory("MyServer", null, null);
  -AppServerCategory.setFactory( factory );
  -
  +new AppServerCategoryFactory("MyServer", null, null);
   ...
  -
   Category cat = AppServerCategory.getInstance("my.category");
  -cat.info("Entry");
  -</pre>
  -</table>
  -<p>
  -Do <b>not</b> use {@link
  -org.apache.log4j.examples.appserver.AppServerCategory#getInstance(String)}
  -to acquire an <code>AppServerCategory</code> instance if you used
  -<code>PropertyConfigurator</code> to do the configuration.  While the
  -introspection mechanism used by <code>PropertyConfigurator</code> is good,
  -it doesn't know to set a link from <code>AppServerCategory</code> to
  -the factory. Misusing the <code>getInstance</code> method in this manner
  -will result in categories produced that have host name defined but all
  -other attributes set to null.
  +cat.info("Entry"); 
  +</pre> </table>
   <p>
   <h4>A Note on Configurators</h4>
   Using the <i>very manual</i> approach to configure
  
  
  

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

Reply via email to