DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUGĀ·
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=33708>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED ANDĀ·
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=33708


[EMAIL PROTECTED] changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |[EMAIL PROTECTED]
             Status|RESOLVED                    |REOPENED
         Resolution|FIXED                       |




------- Additional Comments From [EMAIL PROTECTED]  2007-03-18 19:56 -------
Based on my own attempts to use <categoryFactory> element in log4j-1.2.13, I
find that this bug in DOMConfigurator is *not* fixed.  The same symptoms prevail
as shown by the original poster: i.e., a ClassCastException.  (I could find no
test case for either categoryFactory or loggerFactory configuration in
log4j.xml, so I don't know how anyone could claim it is fixed.)

It would be nice if it could get fixed for log4j-1.2.15.  

The following diff shows how to fix this problem.

--- src/java/org/apache/log4j/xml/DOMConfigurator.java  2007-02-23 12:48:53.408
-0500     511036
+++ src/java/org/apache/log4j/xml/DOMConfigurator.java  2007-03-18 22:25:07.597
-0500
@@ -109,6 +109,9 @@
   Properties props;
   LoggerRepository repository;
 
+
+  protected LoggerFactory catFactory = null;
+
   /**
      No argument constructor.
   */
@@ -258,7 +261,10 @@
            eh.setBackupAppender(findAppenderByReference(currentElement));
          } else if(tagName.equals(LOGGER_REF)) {
            String loggerName = currentElement.getAttribute(REF_ATTR);      
-           Logger logger = repository.getLogger(loggerName);
+      Logger logger =
+          (catFactory == null)
+          ? repository.getLogger(loggerName)
+          : repository.getLogger(loggerName, catFactory);
            eh.setLogger(logger);
          } else if(tagName.equals(ROOT_REF)) {
            Logger root = repository.getRootLogger();
@@ -317,7 +323,9 @@
 
     if(EMPTY_STR.equals(className)) {
       LogLog.debug("Retreiving an instance of org.apache.log4j.Logger.");
-      cat = repository.getLogger(catName);
+      cat = (catFactory == null )
+          ? repository.getLogger(catName)
+          : repository.getLogger(catName, catFactory);
     }
     else {
       LogLog.debug("Desired logger sub-class: ["+className+']');
@@ -361,8 +369,8 @@
     }
     else {
       LogLog.debug("Desired category factory: ["+className+']');
-      Object catFactory = OptionConverter.instantiateByClassName(className, 
-                                                                
LoggerFactory.class, 
+      catFactory = 
(LoggerFactory)OptionConverter.instantiateByClassName(className,
+                                                                
LoggerFactory.class,
                                                                  null);
       PropertySetter propSetter = new PropertySetter(catFactory);
 


-- 
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

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

Reply via email to