Java 类org.apache.log4j.config.PropertySetter 实例源码

项目:cacheonix-core    文件:PropertyConfigurator.java   
/**
   Check the provided <code>Properties</code> object for a
   {@link org.apache.log4j.spi.LoggerFactory LoggerFactory}
   entry specified by {@link #LOGGER_FACTORY_KEY}.  If such an entry
   exists, an attempt is made to create an instance using the default
   constructor.  This instance is used for subsequent Category creations
   within this configurator.

   @see #parseCatsAndRenderers
 */
protected void configureLoggerFactory(Properties props) {
  String factoryClassName = OptionConverter.findAndSubst(LOGGER_FACTORY_KEY,
                       props);
  if(factoryClassName != null) {
    LogLog.debug("Setting category factory to ["+factoryClassName+"].");
    loggerFactory = (LoggerFactory)
         OptionConverter.instantiateByClassName(factoryClassName,
                     LoggerFactory.class,
                     loggerFactory);
    PropertySetter.setProperties(loggerFactory, props, FACTORY_PREFIX + ".");
  }
}
项目:cacheonix-core    文件:DOMConfigurator.java   
/**
    Used internally to parse a filter element.
  */
 protected
 void parseFilters(Element element, Appender appender) {
   String clazz = subst(element.getAttribute(CLASS_ATTR));
   Filter filter = (Filter) OptionConverter.instantiateByClassName(clazz,
                                               Filter.class, null);

   if(filter != null) {
     PropertySetter propSetter = new PropertySetter(filter);
     NodeList children = element.getChildNodes();
     final int length   = children.getLength();

     for (int loop = 0; loop < length; loop++) {
Node currentNode = children.item(loop);
if (currentNode.getNodeType() == Node.ELEMENT_NODE) {
  Element currentElement = (Element) currentNode;
  String tagName = currentElement.getTagName();
  if(tagName.equals(PARAM_TAG)) {
           setParameter(currentElement, propSetter);
  } else {
           quietParseUnrecognizedElement(filter, currentElement, props);
     }
}
     }
     propSetter.activate();
     LogLog.debug("Adding filter of type ["+filter.getClass()
       +"] to appender named ["+appender.getName()+"].");
     appender.addFilter(filter);
   }    
 }
项目:cacheonix-core    文件:DOMConfigurator.java   
/**
    Used internally to parse the category factory element.
 */
 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);
     }
}
     }
   }
 }
项目:cacheonix-core    文件:DOMConfigurator.java   
/**
    Used internally to parse a layout element.
 */  
 protected
 Layout parseLayout (Element layout_element) {
   String className = subst(layout_element.getAttribute(CLASS_ATTR));
   LogLog.debug("Parsing layout of class: \""+className+"\"");       
   try {
     Object instance    = Loader.loadClass(className).newInstance();
     Layout layout      = (Layout)instance;
     PropertySetter propSetter = new PropertySetter(layout);

     NodeList params    = layout_element.getChildNodes();
     final int length   = params.getLength();

     for (int loop = 0; loop < length; loop++) {
Node currentNode = (Node)params.item(loop);
if (currentNode.getNodeType() == Node.ELEMENT_NODE) {
  Element currentElement = (Element) currentNode;
  String tagName = currentElement.getTagName();
  if(tagName.equals(PARAM_TAG)) {
           setParameter(currentElement, propSetter);
  } else {
         parseUnrecognizedElement(instance, currentElement, props);
     }
}
     }

     propSetter.activate();
     return layout;
   }
   catch (Exception oops) {
     LogLog.error("Could not create the Layout. Reported error follows.",
       oops);
     return null;
   }
 }
项目:cacheonix-core    文件:DOMConfigurator.java   
/**
 * Sets a parameter based from configuration file content.
 *
 * @param elem       param element, may not be null.
 * @param propSetter property setter, may not be null.
 * @param props      properties
 * @since 1.2.15
 */
public static void setParameter(final Element elem,
                                final PropertySetter propSetter,
                                final Properties props) {
    String name = subst(elem.getAttribute("name"), props);
    String value = (elem.getAttribute("value"));
    value = subst(OptionConverter.convertSpecialChars(value), props);
    propSetter.setProperty(name, value);
}
项目:cacheonix-core    文件:DOMConfigurator.java   
/**
 * Creates an object and processes any nested param elements
 * but does not call activateOptions.  If the class also supports
 * UnrecognizedElementParser, the parseUnrecognizedElement method
 * will be call for any child elements other than param.
 *
 * @param element       element, may not be null.
 * @param props         properties
 * @param expectedClass interface or class expected to be implemented
 *                      by created class
 * @return created class or null.
 * @throws Exception thrown if the contain object should be abandoned.
 * @since 1.2.15
 */
public static Object parseElement(final Element element,
                                         final Properties props,
                                         final Class expectedClass) throws Exception {
    String clazz = subst(element.getAttribute("class"), props);
    Object instance = OptionConverter.instantiateByClassName(clazz,
            expectedClass, null);

    if (instance != null) {
        PropertySetter propSetter = new PropertySetter(instance);
        NodeList children = element.getChildNodes();
        final int length = children.getLength();

        for (int loop = 0; loop < length; loop++) {
            Node currentNode = children.item(loop);
            if (currentNode.getNodeType() == Node.ELEMENT_NODE) {
                Element currentElement = (Element) currentNode;
                String tagName = currentElement.getTagName();
                if (tagName.equals("param")) {
                    setParameter(currentElement, propSetter, props);
                } else {
                     parseUnrecognizedElement(instance, currentElement, props);
                }
            }
        }
        return instance;
    }
    return null;
}
项目:daq-eclipse    文件:PropertyConfigurator.java   
/**
   Check the provided <code>Properties</code> object for a
   {@link org.apache.log4j.spi.LoggerFactory LoggerFactory}
   entry specified by {@link #LOGGER_FACTORY_KEY}.  If such an entry
   exists, an attempt is made to create an instance using the default
   constructor.  This instance is used for subsequent Category creations
   within this configurator.

   @see #parseCatsAndRenderers
 */
protected void configureLoggerFactory(Properties props) {
  String factoryClassName = OptionConverter.findAndSubst(LOGGER_FACTORY_KEY,
                       props);
  if(factoryClassName != null) {
    LogLog.debug("Setting category factory to ["+factoryClassName+"].");
    loggerFactory = (LoggerFactory)
         OptionConverter.instantiateByClassName(factoryClassName,
                     LoggerFactory.class,
                     loggerFactory);
    PropertySetter.setProperties(loggerFactory, props, FACTORY_PREFIX + ".");
  }
}
项目:daq-eclipse    文件:DOMConfigurator.java   
/**
    Used internally to parse a filter element.
  */
 protected
 void parseFilters(Element element, Appender appender) {
   String clazz = subst(element.getAttribute(CLASS_ATTR));
   Filter filter = (Filter) OptionConverter.instantiateByClassName(clazz,
                                               Filter.class, null);

   if(filter != null) {
     PropertySetter propSetter = new PropertySetter(filter);
     NodeList children = element.getChildNodes();
     final int length   = children.getLength();

     for (int loop = 0; loop < length; loop++) {
Node currentNode = children.item(loop);
if (currentNode.getNodeType() == Node.ELEMENT_NODE) {
  Element currentElement = (Element) currentNode;
  String tagName = currentElement.getTagName();
  if(tagName.equals(PARAM_TAG)) {
           setParameter(currentElement, propSetter);
  } else {
           quietParseUnrecognizedElement(filter, currentElement, props);
     }
}
     }
     propSetter.activate();
     LogLog.debug("Adding filter of type ["+filter.getClass()
       +"] to appender named ["+appender.getName()+"].");
     appender.addFilter(filter);
   }    
 }
项目:daq-eclipse    文件:DOMConfigurator.java   
/**
    Used internally to parse the category factory element.
 */
 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);
     }
}
     }
   }
 }
项目:daq-eclipse    文件:DOMConfigurator.java   
/**
    Used internally to parse a layout element.
 */  
 protected
 Layout parseLayout (Element layout_element) {
   String className = subst(layout_element.getAttribute(CLASS_ATTR));
   LogLog.debug("Parsing layout of class: \""+className+"\"");       
   try {
     Object instance    = Loader.loadClass(className).newInstance();
     Layout layout      = (Layout)instance;
     PropertySetter propSetter = new PropertySetter(layout);

     NodeList params    = layout_element.getChildNodes();
     final int length   = params.getLength();

     for (int loop = 0; loop < length; loop++) {
Node currentNode = (Node)params.item(loop);
if (currentNode.getNodeType() == Node.ELEMENT_NODE) {
  Element currentElement = (Element) currentNode;
  String tagName = currentElement.getTagName();
  if(tagName.equals(PARAM_TAG)) {
           setParameter(currentElement, propSetter);
  } else {
         parseUnrecognizedElement(instance, currentElement, props);
     }
}
     }

     propSetter.activate();
     return layout;
   }
   catch (Exception oops) {
       if (oops instanceof InterruptedException || oops instanceof InterruptedIOException) {
           Thread.currentThread().interrupt();
       }
     LogLog.error("Could not create the Layout. Reported error follows.",
       oops);
     return null;
   }
 }
项目:daq-eclipse    文件:DOMConfigurator.java   
/**
 * Parses throwable renderer.
 * @param element throwableRenderer element.
 * @return configured throwable renderer.
 * @since 1.2.16.
 */
protected ThrowableRenderer parseThrowableRenderer(final Element element) {
    String className = subst(element.getAttribute(CLASS_ATTR));
    LogLog.debug("Parsing throwableRenderer of class: \""+className+"\"");
    try {
      Object instance   = Loader.loadClass(className).newInstance();
      ThrowableRenderer tr      = (ThrowableRenderer)instance;
      PropertySetter propSetter = new PropertySetter(tr);

      NodeList params   = element.getChildNodes();
      final int length  = params.getLength();

      for (int loop = 0; loop < length; loop++) {
            Node currentNode = (Node)params.item(loop);
            if (currentNode.getNodeType() == Node.ELEMENT_NODE) {
                Element currentElement = (Element) currentNode;
                String tagName = currentElement.getTagName();
                if(tagName.equals(PARAM_TAG)) {
                    setParameter(currentElement, propSetter);
                } else {
                    parseUnrecognizedElement(instance, currentElement, props);
                }
            }
      }

      propSetter.activate();
      return tr;
    }
    catch (Exception oops) {
        if (oops instanceof InterruptedException || oops instanceof InterruptedIOException) {
            Thread.currentThread().interrupt();
        }
        LogLog.error("Could not create the ThrowableRenderer. Reported error follows.",
           oops);
      return null;
    }
}
项目:daq-eclipse    文件:DOMConfigurator.java   
protected
void setParameter(Element elem, PropertySetter propSetter) {
    String name = subst(elem.getAttribute(NAME_ATTR));
    String value = (elem.getAttribute(VALUE_ATTR));
    value = subst(OptionConverter.convertSpecialChars(value));
    propSetter.setProperty(name, value);
}
项目:daq-eclipse    文件:DOMConfigurator.java   
/**
 * Sets a parameter based from configuration file content.
 *
 * @param elem       param element, may not be null.
 * @param propSetter property setter, may not be null.
 * @param props      properties
 * @since 1.2.15
 */
public static void setParameter(final Element elem,
                                final PropertySetter propSetter,
                                final Properties props) {
    String name = subst(elem.getAttribute("name"), props);
    String value = (elem.getAttribute("value"));
    value = subst(OptionConverter.convertSpecialChars(value), props);
    propSetter.setProperty(name, value);
}
项目:daq-eclipse    文件:DOMConfigurator.java   
/**
 * Creates an object and processes any nested param elements
 * but does not call activateOptions.  If the class also supports
 * UnrecognizedElementParser, the parseUnrecognizedElement method
 * will be call for any child elements other than param.
 *
 * @param element       element, may not be null.
 * @param props         properties
 * @param expectedClass interface or class expected to be implemented
 *                      by created class
 * @return created class or null.
 * @throws Exception thrown if the contain object should be abandoned.
 * @since 1.2.15
 */
public static Object parseElement(final Element element,
                                         final Properties props,
                                         final Class expectedClass) throws Exception {
    String clazz = subst(element.getAttribute("class"), props);
    Object instance = OptionConverter.instantiateByClassName(clazz,
            expectedClass, null);

    if (instance != null) {
        PropertySetter propSetter = new PropertySetter(instance);
        NodeList children = element.getChildNodes();
        final int length = children.getLength();

        for (int loop = 0; loop < length; loop++) {
            Node currentNode = children.item(loop);
            if (currentNode.getNodeType() == Node.ELEMENT_NODE) {
                Element currentElement = (Element) currentNode;
                String tagName = currentElement.getTagName();
                if (tagName.equals("param")) {
                    setParameter(currentElement, propSetter, props);
                } else {
                     parseUnrecognizedElement(instance, currentElement, props);
                }
            }
        }
        return instance;
    }
    return null;
}
项目:nabs    文件:PropertyConfigurator.java   
/**
   Check the provided <code>Properties</code> object for a
   {@link org.apache.log4j.spi.LoggerFactory LoggerFactory}
   entry specified by {@link #LOGGER_FACTORY_KEY}.  If such an entry
   exists, an attempt is made to create an instance using the default
   constructor.  This instance is used for subsequent Category creations
   within this configurator.

   @see #parseCatsAndRenderers
 */
protected void configureLoggerFactory(Properties props) {
  String factoryClassName = OptionConverter.findAndSubst(LOGGER_FACTORY_KEY,
                       props);
  if(factoryClassName != null) {
    LogLog.debug("Setting category factory to ["+factoryClassName+"].");
    loggerFactory = (LoggerFactory)
         OptionConverter.instantiateByClassName(factoryClassName,
                     LoggerFactory.class,
                     loggerFactory);
    PropertySetter.setProperties(loggerFactory, props, FACTORY_PREFIX + ".");
  }
}
项目:nabs    文件:DOMConfigurator.java   
/**
    Used internally to parse an {@link ErrorHandler} element.
  */
 protected
 void parseErrorHandler(Element element, Appender appender) {
   ErrorHandler eh = (ErrorHandler) OptionConverter.instantiateByClassName(
                                      subst(element.getAttribute(CLASS_ATTR)),
                                      org.apache.log4j.spi.ErrorHandler.class, 
                       null);

   if(eh != null) {
     eh.setAppender(appender);

     PropertySetter propSetter = new PropertySetter(eh);
     NodeList children = element.getChildNodes();
     final int length   = children.getLength();

     for (int loop = 0; loop < length; loop++) {
Node currentNode = children.item(loop);
if (currentNode.getNodeType() == Node.ELEMENT_NODE) {
  Element currentElement = (Element) currentNode;
  String tagName = currentElement.getTagName();
  if(tagName.equals(PARAM_TAG)) {
           setParameter(currentElement, propSetter);
  } else if(tagName.equals(APPENDER_REF_TAG)) {
    eh.setBackupAppender(findAppenderByReference(currentElement));
  } else if(tagName.equals(LOGGER_REF)) {
    String loggerName = currentElement.getAttribute(REF_ATTR);      
    Logger logger = repository.getLogger(loggerName);
    eh.setLogger(logger);
  } else if(tagName.equals(ROOT_REF)) {
    Logger root = repository.getRootLogger();
    eh.setLogger(root);
  }
}
     }
     propSetter.activate();
     appender.setErrorHandler(eh);
   }
 }
项目:nabs    文件:DOMConfigurator.java   
/**
    Used internally to parse a filter element.
  */
 protected
 void parseFilters(Element element, Appender appender) {
   String clazz = subst(element.getAttribute(CLASS_ATTR));
   Filter filter = (Filter) OptionConverter.instantiateByClassName(clazz,
                                               Filter.class, null);

   if(filter != null) {
     PropertySetter propSetter = new PropertySetter(filter);
     NodeList children = element.getChildNodes();
     final int length   = children.getLength();

     for (int loop = 0; loop < length; loop++) {
Node currentNode = children.item(loop);
if (currentNode.getNodeType() == Node.ELEMENT_NODE) {
  Element currentElement = (Element) currentNode;
  String tagName = currentElement.getTagName();
  if(tagName.equals(PARAM_TAG)) {
           setParameter(currentElement, propSetter);
  } 
}
     }
     propSetter.activate();
     LogLog.debug("Adding filter of type ["+filter.getClass()
       +"] to appender named ["+appender.getName()+"].");
     appender.addFilter(filter);
   }    
 }
项目:nabs    文件:DOMConfigurator.java   
/**
    Used internally to parse the category factory element.
 */
 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 catFactory = OptionConverter.instantiateByClassName(className, 
                                                                LoggerFactory.class, 
                                                                null);
     PropertySetter propSetter = new PropertySetter(catFactory);

     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);
  }
}
     }
   }
 }
项目:nabs    文件:DOMConfigurator.java   
/**
    Used internally to parse a layout element.
 */  
 protected
 Layout parseLayout (Element layout_element) {
   String className = subst(layout_element.getAttribute(CLASS_ATTR));
   LogLog.debug("Parsing layout of class: \""+className+"\"");       
   try {
     Object instance    = Loader.loadClass(className).newInstance();
     Layout layout      = (Layout)instance;
     PropertySetter propSetter = new PropertySetter(layout);

     NodeList params    = layout_element.getChildNodes();
     final int length   = params.getLength();

     for (int loop = 0; loop < length; loop++) {
Node currentNode = (Node)params.item(loop);
if (currentNode.getNodeType() == Node.ELEMENT_NODE) {
  Element currentElement = (Element) currentNode;
  String tagName = currentElement.getTagName();
  if(tagName.equals(PARAM_TAG)) {
           setParameter(currentElement, propSetter);
  }
}
     }

     propSetter.activate();
     return layout;
   }
   catch (Exception oops) {
     LogLog.error("Could not create the Layout. Reported error follows.",
       oops);
     return null;
   }
 }
项目:nabs    文件:DOMConfigurator.java   
protected
void setParameter(Element elem, PropertySetter propSetter) {
  String name = subst(elem.getAttribute(NAME_ATTR));
  String value = (elem.getAttribute(VALUE_ATTR));
  value = subst(OptionConverter.convertSpecialChars(value));
  propSetter.setProperty(name, value);
}
项目:cacheonix-core    文件:PropertyConfigurator.java   
Appender parseAppender(Properties props, String appenderName) {
   Appender appender = registryGet(appenderName);
   if((appender != null)) {
     LogLog.debug("Appender \"" + appenderName + "\" was already parsed.");
     return appender;
   }
   // Appender was not previously initialized.
   String prefix = APPENDER_PREFIX + appenderName;
   String layoutPrefix = prefix + ".layout";

   appender = (Appender) OptionConverter.instantiateByKey(props, prefix,
                      org.apache.log4j.Appender.class,
                      null);
   if(appender == null) {
     LogLog.error(
             "Could not instantiate appender named \"" + appenderName+"\".");
     return null;
   }
   appender.setName(appenderName);

   if(appender instanceof OptionHandler) {
     if(appender.requiresLayout()) {
Layout layout = (Layout) OptionConverter.instantiateByKey(props,
                              layoutPrefix,
                              Layout.class,
                              null);
if(layout != null) {
  appender.setLayout(layout);
  LogLog.debug("Parsing layout options for \"" + appenderName +"\".");
  //configureOptionHandler(layout, layoutPrefix + ".", props);
         PropertySetter.setProperties(layout, props, layoutPrefix + ".");
  LogLog.debug("End of parsing for \"" + appenderName +"\".");
}
     }
     //configureOptionHandler((OptionHandler) appender, prefix + ".", props);
     PropertySetter.setProperties(appender, props, prefix + ".");
     LogLog.debug("Parsed \"" + appenderName +"\" options.");
   }
   registryPut(appender);
   return appender;
 }
项目:cacheonix-core    文件:DOMConfigurator.java   
/**
    Used internally to parse an appender element.
  */
 protected
 Appender parseAppender (Element appenderElement) {
   String className = subst(appenderElement.getAttribute(CLASS_ATTR));
   LogLog.debug("Class name: [" + className+']');    
   try {
     Object instance    = Loader.loadClass(className).newInstance();
     Appender appender  = (Appender)instance;
     PropertySetter propSetter = new PropertySetter(appender);

     appender.setName(subst(appenderElement.getAttribute(NAME_ATTR)));

     NodeList children  = appenderElement.getChildNodes();
     final int length   = children.getLength();

     for (int loop = 0; loop < length; loop++) {
Node currentNode = children.item(loop);

/* We're only interested in Elements */
if (currentNode.getNodeType() == Node.ELEMENT_NODE) {
  Element currentElement = (Element)currentNode;

  // Parse appender parameters 
  if (currentElement.getTagName().equals(PARAM_TAG)) {
           setParameter(currentElement, propSetter);
  }
  // Set appender layout
  else if (currentElement.getTagName().equals(LAYOUT_TAG)) {
    appender.setLayout(parseLayout(currentElement));
  }
  // Add filters
  else if (currentElement.getTagName().equals(FILTER_TAG)) {
    parseFilters(currentElement, appender);
  }
  else if (currentElement.getTagName().equals(ERROR_HANDLER_TAG)) {
    parseErrorHandler(currentElement, appender);
  }
  else if (currentElement.getTagName().equals(APPENDER_REF_TAG)) {
    String refName = subst(currentElement.getAttribute(REF_ATTR));
    if(appender instanceof AppenderAttachable) {
      AppenderAttachable aa = (AppenderAttachable) appender;
      LogLog.debug("Attaching appender named ["+ refName+
           "] to appender named ["+ appender.getName()+"].");
      aa.addAppender(findAppenderByReference(currentElement));
    } else {
      LogLog.error("Requesting attachment of appender named ["+
           refName+ "] to appender named ["+ appender.getName()+
               "] which does not implement org.apache.log4j.spi.AppenderAttachable.");
    }
  } else {
         parseUnrecognizedElement(instance, currentElement, props);
     }
}
     }
     propSetter.activate();
     return appender;
   }
   /* Yes, it's ugly.  But all of these exceptions point to the same
      problem: we can't create an Appender */
   catch (Exception oops) {
     LogLog.error("Could not create an Appender. Reported error follows.",
       oops);
     return null;
   }
 }
项目:cacheonix-core    文件:DOMConfigurator.java   
/**
    Used internally to parse an {@link ErrorHandler} element.
  */
 protected
 void parseErrorHandler(Element element, Appender appender) {
   ErrorHandler eh = (ErrorHandler) OptionConverter.instantiateByClassName(
                                      subst(element.getAttribute(CLASS_ATTR)),
                                      org.apache.log4j.spi.ErrorHandler.class, 
                       null);

   if(eh != null) {
     eh.setAppender(appender);

     PropertySetter propSetter = new PropertySetter(eh);
     NodeList children = element.getChildNodes();
     final int length   = children.getLength();

     for (int loop = 0; loop < length; loop++) {
Node currentNode = children.item(loop);
if (currentNode.getNodeType() == Node.ELEMENT_NODE) {
  Element currentElement = (Element) currentNode;
  String tagName = currentElement.getTagName();
  if(tagName.equals(PARAM_TAG)) {
           setParameter(currentElement, propSetter);
  } else if(tagName.equals(APPENDER_REF_TAG)) {
    eh.setBackupAppender(findAppenderByReference(currentElement));
  } else if(tagName.equals(LOGGER_REF)) {
    String loggerName = currentElement.getAttribute(REF_ATTR);      
    Logger logger = (catFactory == null) ? repository.getLogger(loggerName)
               : repository.getLogger(loggerName, catFactory);
    eh.setLogger(logger);
  } else if(tagName.equals(ROOT_REF)) {
    Logger root = repository.getRootLogger();
    eh.setLogger(root);
  } else {
         quietParseUnrecognizedElement(eh, currentElement, props);
     }
}
     }
     propSetter.activate();
     appender.setErrorHandler(eh);
   }
 }
项目:cacheonix-core    文件:DOMConfigurator.java   
/**
    Used internally to parse the children of a category element.
 */
 protected
 void parseChildrenOfLoggerElement(Element catElement,
                  Logger cat, boolean isRoot) {

   PropertySetter propSetter = new PropertySetter(cat);

   // Remove all existing appenders from cat. They will be
   // reconstructed if need be.
   cat.removeAllAppenders();


   NodeList children    = catElement.getChildNodes();
   final int length     = children.getLength();

   for (int loop = 0; loop < length; loop++) {
     Node currentNode = children.item(loop);

     if (currentNode.getNodeType() == Node.ELEMENT_NODE) {
Element currentElement = (Element) currentNode;
String tagName = currentElement.getTagName();

if (tagName.equals(APPENDER_REF_TAG)) {
  Element appenderRef = (Element) currentNode;
  Appender appender = findAppenderByReference(appenderRef);
  String refName =  subst(appenderRef.getAttribute(REF_ATTR));
  if(appender != null)
    LogLog.debug("Adding appender named ["+ refName+ 
         "] to category ["+cat.getName()+"].");
  else 
    LogLog.debug("Appender named ["+ refName + "] not found.");

  cat.addAppender(appender);

} else if(tagName.equals(LEVEL_TAG)) {
  parseLevel(currentElement, cat, isRoot);  
} else if(tagName.equals(PRIORITY_TAG)) {
  parseLevel(currentElement, cat, isRoot);
} else if(tagName.equals(PARAM_TAG)) {
         setParameter(currentElement, propSetter);
} else {
       quietParseUnrecognizedElement(cat, currentElement, props);
   }
     }
   }
   propSetter.activate();
 }
项目:cacheonix-core    文件:DOMConfigurator.java   
protected
void setParameter(Element elem, PropertySetter propSetter) {
    setParameter(elem, propSetter, props);
}
项目:daq-eclipse    文件:PropertyConfigurator.java   
/**
    Parse non-root elements, such non-root categories and renderers.
 */
 protected
 void parseCatsAndRenderers(Properties props, LoggerRepository hierarchy) {
   Enumeration enumeration = props.propertyNames();
   while(enumeration.hasMoreElements()) {
     String key = (String) enumeration.nextElement();
     if(key.startsWith(CATEGORY_PREFIX) || key.startsWith(LOGGER_PREFIX)) {
String loggerName = null;
if(key.startsWith(CATEGORY_PREFIX)) {
  loggerName = key.substring(CATEGORY_PREFIX.length());
} else if(key.startsWith(LOGGER_PREFIX)) {
  loggerName = key.substring(LOGGER_PREFIX.length());
}
String value =  OptionConverter.findAndSubst(key, props);
Logger logger = hierarchy.getLogger(loggerName, loggerFactory);
synchronized(logger) {
  parseCategory(props, logger, key, loggerName, value);
  parseAdditivityForLogger(props, logger, loggerName);
}
     } else if(key.startsWith(RENDERER_PREFIX)) {
String renderedClass = key.substring(RENDERER_PREFIX.length());
String renderingClass = OptionConverter.findAndSubst(key, props);
if(hierarchy instanceof RendererSupport) {
  RendererMap.addRenderer((RendererSupport) hierarchy, renderedClass,
              renderingClass);
}
     } else if (key.equals(THROWABLE_RENDERER_PREFIX)) {
         if (hierarchy instanceof ThrowableRendererSupport) {
           ThrowableRenderer tr = (ThrowableRenderer)
                 OptionConverter.instantiateByKey(props,
                         THROWABLE_RENDERER_PREFIX,
                         org.apache.log4j.spi.ThrowableRenderer.class,
                         null);
           if(tr == null) {
               LogLog.error(
                   "Could not instantiate throwableRenderer.");
           } else {
               PropertySetter setter = new PropertySetter(tr);
               setter.setProperties(props, THROWABLE_RENDERER_PREFIX + ".");
               ((ThrowableRendererSupport) hierarchy).setThrowableRenderer(tr);

           }
         }
     }
   }
 }
项目:daq-eclipse    文件:PropertyConfigurator.java   
Appender parseAppender(Properties props, String appenderName) {
   Appender appender = registryGet(appenderName);
   if((appender != null)) {
     LogLog.debug("Appender \"" + appenderName + "\" was already parsed.");
     return appender;
   }
   // Appender was not previously initialized.
   String prefix = APPENDER_PREFIX + appenderName;
   String layoutPrefix = prefix + ".layout";

   appender = (Appender) OptionConverter.instantiateByKey(props, prefix,
                      org.apache.log4j.Appender.class,
                      null);
   if(appender == null) {
     LogLog.error(
             "Could not instantiate appender named \"" + appenderName+"\".");
     return null;
   }
   appender.setName(appenderName);

   if(appender instanceof OptionHandler) {
     if(appender.requiresLayout()) {
Layout layout = (Layout) OptionConverter.instantiateByKey(props,
                              layoutPrefix,
                              Layout.class,
                              null);
if(layout != null) {
  appender.setLayout(layout);
  LogLog.debug("Parsing layout options for \"" + appenderName +"\".");
  //configureOptionHandler(layout, layoutPrefix + ".", props);
         PropertySetter.setProperties(layout, props, layoutPrefix + ".");
  LogLog.debug("End of parsing for \"" + appenderName +"\".");
}
     }
     final String errorHandlerPrefix = prefix + ".errorhandler";
     String errorHandlerClass = OptionConverter.findAndSubst(errorHandlerPrefix, props);
     if (errorHandlerClass != null) {
        ErrorHandler eh = (ErrorHandler) OptionConverter.instantiateByKey(props,
                  errorHandlerPrefix,
                  ErrorHandler.class,
                  null);
        if (eh != null) {
              appender.setErrorHandler(eh);
              LogLog.debug("Parsing errorhandler options for \"" + appenderName +"\".");
              parseErrorHandler(eh, errorHandlerPrefix, props, repository);
              final Properties edited = new Properties();
              final String[] keys = new String[] { 
                      errorHandlerPrefix + "." + ROOT_REF,
                      errorHandlerPrefix + "." + LOGGER_REF,
                      errorHandlerPrefix + "." + APPENDER_REF_TAG
              };
              for(Iterator iter = props.entrySet().iterator();iter.hasNext();) {
                  Map.Entry entry = (Map.Entry) iter.next();
                  int i = 0;
                  for(; i < keys.length; i++) {
                      if(keys[i].equals(entry.getKey())) break;
                  }
                  if (i == keys.length) {
                      edited.put(entry.getKey(), entry.getValue());
                  }
              }
              PropertySetter.setProperties(eh, edited, errorHandlerPrefix + ".");
              LogLog.debug("End of errorhandler parsing for \"" + appenderName +"\".");
        }

     }
     //configureOptionHandler((OptionHandler) appender, prefix + ".", props);
     PropertySetter.setProperties(appender, props, prefix + ".");
     LogLog.debug("Parsed \"" + appenderName +"\" options.");
   }
   parseAppenderFilters(props, appenderName, appender);
   registryPut(appender);
   return appender;
 }
项目:daq-eclipse    文件:DOMConfigurator.java   
/**
    Used internally to parse an appender element.
  */
 protected
 Appender parseAppender (Element appenderElement) {
   String className = subst(appenderElement.getAttribute(CLASS_ATTR));
   LogLog.debug("Class name: [" + className+']');    
   try {
     Object instance    = Loader.loadClass(className).newInstance();
     Appender appender  = (Appender)instance;
     PropertySetter propSetter = new PropertySetter(appender);

     appender.setName(subst(appenderElement.getAttribute(NAME_ATTR)));

     NodeList children  = appenderElement.getChildNodes();
     final int length   = children.getLength();

     for (int loop = 0; loop < length; loop++) {
Node currentNode = children.item(loop);

/* We're only interested in Elements */
if (currentNode.getNodeType() == Node.ELEMENT_NODE) {
  Element currentElement = (Element)currentNode;

  // Parse appender parameters 
  if (currentElement.getTagName().equals(PARAM_TAG)) {
           setParameter(currentElement, propSetter);
  }
  // Set appender layout
  else if (currentElement.getTagName().equals(LAYOUT_TAG)) {
    appender.setLayout(parseLayout(currentElement));
  }
  // Add filters
  else if (currentElement.getTagName().equals(FILTER_TAG)) {
    parseFilters(currentElement, appender);
  }
  else if (currentElement.getTagName().equals(ERROR_HANDLER_TAG)) {
    parseErrorHandler(currentElement, appender);
  }
  else if (currentElement.getTagName().equals(APPENDER_REF_TAG)) {
    String refName = subst(currentElement.getAttribute(REF_ATTR));
    if(appender instanceof AppenderAttachable) {
      AppenderAttachable aa = (AppenderAttachable) appender;
      LogLog.debug("Attaching appender named ["+ refName+
           "] to appender named ["+ appender.getName()+"].");
      aa.addAppender(findAppenderByReference(currentElement));
    } else {
      LogLog.error("Requesting attachment of appender named ["+
           refName+ "] to appender named ["+ appender.getName()+
               "] which does not implement org.apache.log4j.spi.AppenderAttachable.");
    }
  } else {
         parseUnrecognizedElement(instance, currentElement, props);
     }
}
     }
     propSetter.activate();
     return appender;
   }
   /* Yes, it's ugly.  But all of these exceptions point to the same
      problem: we can't create an Appender */
   catch (Exception oops) {
       if (oops instanceof InterruptedException || oops instanceof InterruptedIOException) {
           Thread.currentThread().interrupt();
       }
     LogLog.error("Could not create an Appender. Reported error follows.",
       oops);
     return null;
   }
 }
项目:daq-eclipse    文件:DOMConfigurator.java   
/**
    Used internally to parse an {@link ErrorHandler} element.
  */
 protected
 void parseErrorHandler(Element element, Appender appender) {
   ErrorHandler eh = (ErrorHandler) OptionConverter.instantiateByClassName(
                                      subst(element.getAttribute(CLASS_ATTR)),
                                      org.apache.log4j.spi.ErrorHandler.class, 
                       null);

   if(eh != null) {
     eh.setAppender(appender);

     PropertySetter propSetter = new PropertySetter(eh);
     NodeList children = element.getChildNodes();
     final int length   = children.getLength();

     for (int loop = 0; loop < length; loop++) {
Node currentNode = children.item(loop);
if (currentNode.getNodeType() == Node.ELEMENT_NODE) {
  Element currentElement = (Element) currentNode;
  String tagName = currentElement.getTagName();
  if(tagName.equals(PARAM_TAG)) {
           setParameter(currentElement, propSetter);
  } else if(tagName.equals(APPENDER_REF_TAG)) {
    eh.setBackupAppender(findAppenderByReference(currentElement));
  } else if(tagName.equals(LOGGER_REF)) {
    String loggerName = currentElement.getAttribute(REF_ATTR);      
    Logger logger = (catFactory == null) ? repository.getLogger(loggerName)
               : repository.getLogger(loggerName, catFactory);
    eh.setLogger(logger);
  } else if(tagName.equals(ROOT_REF)) {
    Logger root = repository.getRootLogger();
    eh.setLogger(root);
  } else {
         quietParseUnrecognizedElement(eh, currentElement, props);
     }
}
     }
     propSetter.activate();
     appender.setErrorHandler(eh);
   }
 }
项目:daq-eclipse    文件:DOMConfigurator.java   
/**
    Used internally to parse the children of a category element.
 */
 protected
 void parseChildrenOfLoggerElement(Element catElement,
                  Logger cat, boolean isRoot) {

   PropertySetter propSetter = new PropertySetter(cat);

   // Remove all existing appenders from cat. They will be
   // reconstructed if need be.
   cat.removeAllAppenders();


   NodeList children    = catElement.getChildNodes();
   final int length     = children.getLength();

   for (int loop = 0; loop < length; loop++) {
     Node currentNode = children.item(loop);

     if (currentNode.getNodeType() == Node.ELEMENT_NODE) {
Element currentElement = (Element) currentNode;
String tagName = currentElement.getTagName();

if (tagName.equals(APPENDER_REF_TAG)) {
  Element appenderRef = (Element) currentNode;
  Appender appender = findAppenderByReference(appenderRef);
  String refName =  subst(appenderRef.getAttribute(REF_ATTR));
  if(appender != null)
    LogLog.debug("Adding appender named ["+ refName+ 
         "] to category ["+cat.getName()+"].");
  else 
    LogLog.debug("Appender named ["+ refName + "] not found.");

  cat.addAppender(appender);

} else if(tagName.equals(LEVEL_TAG)) {
  parseLevel(currentElement, cat, isRoot);  
} else if(tagName.equals(PRIORITY_TAG)) {
  parseLevel(currentElement, cat, isRoot);
} else if(tagName.equals(PARAM_TAG)) {
         setParameter(currentElement, propSetter);
} else {
       quietParseUnrecognizedElement(cat, currentElement, props);
   }
     }
   }
   propSetter.activate();
 }
项目:nabs    文件:PropertyConfigurator.java   
Appender parseAppender(Properties props, String appenderName) {
   Appender appender = registryGet(appenderName);
   if((appender != null)) {
     LogLog.debug("Appender \"" + appenderName + "\" was already parsed.");
     return appender;
   }
   // Appender was not previously initialized.
   String prefix = APPENDER_PREFIX + appenderName;
   String layoutPrefix = prefix + ".layout";

   appender = (Appender) OptionConverter.instantiateByKey(props, prefix,
                      org.apache.log4j.Appender.class,
                      null);
   if(appender == null) {
     LogLog.error(
             "Could not instantiate appender named \"" + appenderName+"\".");
     return null;
   }
   appender.setName(appenderName);

   if(appender instanceof OptionHandler) {
     if(appender.requiresLayout()) {
Layout layout = (Layout) OptionConverter.instantiateByKey(props,
                              layoutPrefix,
                              Layout.class,
                              null);
if(layout != null) {
  appender.setLayout(layout);
  LogLog.debug("Parsing layout options for \"" + appenderName +"\".");
  //configureOptionHandler(layout, layoutPrefix + ".", props);
         PropertySetter.setProperties(layout, props, layoutPrefix + ".");
  LogLog.debug("End of parsing for \"" + appenderName +"\".");
}
     }
     //configureOptionHandler((OptionHandler) appender, prefix + ".", props);
     PropertySetter.setProperties(appender, props, prefix + ".");
     LogLog.debug("Parsed \"" + appenderName +"\" options.");
   }
   registryPut(appender);
   return appender;
 }
项目:nabs    文件:DOMConfigurator.java   
/**
    Used internally to parse an appender element.
  */
 protected
 Appender parseAppender (Element appenderElement) {
   String className = subst(appenderElement.getAttribute(CLASS_ATTR));
   LogLog.debug("Class name: [" + className+']');    
   try {
     Object instance    = Loader.loadClass(className).newInstance();
     Appender appender  = (Appender)instance;
     PropertySetter propSetter = new PropertySetter(appender);

     appender.setName(subst(appenderElement.getAttribute(NAME_ATTR)));

     NodeList children  = appenderElement.getChildNodes();
     final int length   = children.getLength();

     for (int loop = 0; loop < length; loop++) {
Node currentNode = children.item(loop);

/* We're only interested in Elements */
if (currentNode.getNodeType() == Node.ELEMENT_NODE) {
  Element currentElement = (Element)currentNode;

  // Parse appender parameters 
  if (currentElement.getTagName().equals(PARAM_TAG)) {
           setParameter(currentElement, propSetter);
  }
  // Set appender layout
  else if (currentElement.getTagName().equals(LAYOUT_TAG)) {
    appender.setLayout(parseLayout(currentElement));
  }
  // Add filters
  else if (currentElement.getTagName().equals(FILTER_TAG)) {
    parseFilters(currentElement, appender);
  }
  else if (currentElement.getTagName().equals(ERROR_HANDLER_TAG)) {
    parseErrorHandler(currentElement, appender);
  }
  else if (currentElement.getTagName().equals(APPENDER_REF_TAG)) {
    String refName = subst(currentElement.getAttribute(REF_ATTR));
    if(appender instanceof AppenderAttachable) {
      AppenderAttachable aa = (AppenderAttachable) appender;
      LogLog.debug("Attaching appender named ["+ refName+
           "] to appender named ["+ appender.getName()+"].");
      aa.addAppender(findAppenderByReference(currentElement));
    } else {
      LogLog.error("Requesting attachment of appender named ["+
           refName+ "] to appender named ["+ appender.getName()+
               "] which does not implement org.apache.log4j.spi.AppenderAttachable.");
    }
  }
}
     }
     propSetter.activate();
     return appender;
   }
   /* Yes, it's ugly.  But all of these exceptions point to the same
      problem: we can't create an Appender */
   catch (Exception oops) {
     LogLog.error("Could not create an Appender. Reported error follows.",
       oops);
     return null;
   }
 }
项目:nabs    文件:DOMConfigurator.java   
/**
    Used internally to parse the children of a category element.
 */
 protected
 void parseChildrenOfLoggerElement(Element catElement,
                  Logger cat, boolean isRoot) {

   PropertySetter propSetter = new PropertySetter(cat);

   // Remove all existing appenders from cat. They will be
   // reconstructed if need be.
   cat.removeAllAppenders();


   NodeList children    = catElement.getChildNodes();
   final int length     = children.getLength();

   for (int loop = 0; loop < length; loop++) {
     Node currentNode = children.item(loop);

     if (currentNode.getNodeType() == Node.ELEMENT_NODE) {
Element currentElement = (Element) currentNode;
String tagName = currentElement.getTagName();

if (tagName.equals(APPENDER_REF_TAG)) {
  Element appenderRef = (Element) currentNode;
  Appender appender = findAppenderByReference(appenderRef);
  String refName =  subst(appenderRef.getAttribute(REF_ATTR));
  if(appender != null)
    LogLog.debug("Adding appender named ["+ refName+ 
         "] to category ["+cat.getName()+"].");
  else 
    LogLog.debug("Appender named ["+ refName + "] not found.");

  cat.addAppender(appender);

} else if(tagName.equals(LEVEL_TAG)) {
  parseLevel(currentElement, cat, isRoot);  
} else if(tagName.equals(PRIORITY_TAG)) {
  parseLevel(currentElement, cat, isRoot);
} else if(tagName.equals(PARAM_TAG)) {
         setParameter(currentElement, propSetter);
}
     }
   }
   propSetter.activate();
 }
项目:log4j2    文件:DOMConfigurator.java   
public static void setParameter(final Element elem, final PropertySetter propSetter, final Properties props) {

    }
项目:logging-log4j2    文件:DOMConfigurator.java   
public static void setParameter(final Element elem, final PropertySetter propSetter, final Properties props) {

    }