protected void parseCategoryFactory ( Element factoryElement ) { String className = subst ( factoryElement . getAttribute ( CLASS_ATTR ) ) ; if ( EMPTY_STR . equals ( className ) ) { LogLog . error ( "Category Factory tag " + CLASS_ATTR + " attribute not found." ) ; LogLog . debug ( "No Category Factory configured." ) ; } else { LogLog . debug ( "Desired category factory: [" + className + ' ' ) ; Object factory = OptionConverter . instantiateByClassName ( className , LoggerFactory . class , null ) ; if ( factory instanceof LoggerFactory ) { catFactory = ( LoggerFactory ) factory ; } else { LogLog . error ( "Category Factory class " + className + " does not implement org.apache.log4j.LoggerFactory" ) ; } PropertySetter propSetter = new PropertySetter ( factory ) ; Element currentElement = null ; Node currentNode = null ; NodeList children = factoryElement . getChildNodes ( ) ; final int length = children . getLength ( ) ; for ( int loop = 0 ; loop < length ; loop ++ ) { currentNode = children . item ( loop ) ; if ( currentNode . getNodeType ( ) == Node . ELEMENT_NODE ) { currentElement = ( Element ) currentNode ; if ( currentElement . getTagName ( ) . equals ( PARAM_TAG ) ) { setParameter ( currentElement , propSetter ) ; } else { quietParseUnrecognizedElement ( factory , currentElement , props ) ; } } } } }
Used internally to parse the category factory element .