亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? domconfigurator.java

?? log4j的源碼
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
	  	} 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();  }  /**     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;    }  }  protected   void parseRenderer(Element element) {    String renderingClass = subst(element.getAttribute(RENDERING_CLASS_ATTR));    String renderedClass = subst(element.getAttribute(RENDERED_CLASS_ATTR));    if(repository instanceof RendererSupport) {      RendererMap.addRenderer((RendererSupport) repository, renderedClass, 			      renderingClass);    }  }  /**     Used internally to parse a level  element.  */  protected  void parseLevel(Element element, Logger logger, boolean isRoot) {    String catName = logger.getName();    if(isRoot) {      catName = "root";    }    String priStr = subst(element.getAttribute(VALUE_ATTR));    LogLog.debug("Level value for "+catName+" is  ["+priStr+"].");        if(INHERITED.equalsIgnoreCase(priStr) || NULL.equalsIgnoreCase(priStr)) {      if(isRoot) {	LogLog.error("Root level cannot be inherited. Ignoring directive.");      } else {	logger.setLevel(null);      }    } else {      String className = subst(element.getAttribute(CLASS_ATTR));            if(EMPTY_STR.equals(className)) {		logger.setLevel(OptionConverter.toLevel(priStr, Level.DEBUG));      } else {	LogLog.debug("Desired Level sub-class: ["+className+']');	try {	 	  Class clazz = Loader.loadClass(className);	  Method toLevelMethod = clazz.getMethod("toLevel", 						    ONE_STRING_PARAM);	  Level pri = (Level) toLevelMethod.invoke(null, 						    new Object[] {priStr});	  logger.setLevel(pri);	} catch (Exception oops) {	  LogLog.error("Could not create level ["+priStr+		       "]. Reported error follows.", oops);	  return;	}      }    }    LogLog.debug(catName + " level set to " + logger.getLevel());      }  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);  }  /**     Configure log4j using a <code>configuration</code> element as     defined in the log4j.dtd.   */  static  public  void configure (Element element) {    DOMConfigurator configurator = new DOMConfigurator();    configurator.doConfigure(element,  LogManager.getLoggerRepository());  } /**     Like {@link #configureAndWatch(String, long)} except that the     default delay as defined by {@link FileWatchdog#DEFAULT_DELAY} is     used.      @param configFilename A log4j configuration file in XML format.  */  static  public  void configureAndWatch(String configFilename) {    configureAndWatch(configFilename, FileWatchdog.DEFAULT_DELAY);  }  /**     Read the configuration file <code>configFilename</code> if it     exists. Moreover, a thread will be created that will periodically     check if <code>configFilename</code> has been created or     modified. The period is determined by the <code>delay</code>     argument. If a change or file creation is detected, then     <code>configFilename</code> is read to configure log4j.        @param configFilename A log4j configuration file in XML format.      @param delay The delay in milliseconds to wait between each check.  */  static  public  void configureAndWatch(String configFilename, long delay) {    XMLWatchdog xdog = new XMLWatchdog(configFilename);    xdog.setDelay(delay);    xdog.start();  }    private interface ParseAction {      Document parse(final DocumentBuilder parser) throws SAXException, IOException;  }  public  void doConfigure(final String filename, LoggerRepository repository) {    ParseAction action = new ParseAction() {          public Document parse(final DocumentBuilder parser) throws SAXException, IOException {              return parser.parse(new File(filename));          }          public String toString() {               return "file [" + filename + "]";           }    };    doConfigure(action, repository);  }    public  void doConfigure(final URL url, LoggerRepository repository) {      ParseAction action = new ParseAction() {          public Document parse(final DocumentBuilder parser) throws SAXException, IOException {              return parser.parse(url.toString());          }          public String toString() {               return "url [" + url.toString() + "]";           }      };      doConfigure(action, repository);  }  /**     Configure log4j by reading in a log4j.dtd compliant XML     configuration file.  */  public  void doConfigure(final InputStream inputStream, LoggerRepository repository)                                           throws FactoryConfigurationError {      ParseAction action = new ParseAction() {          public Document parse(final DocumentBuilder parser) throws SAXException, IOException {              InputSource inputSource = new InputSource(inputStream);              inputSource.setSystemId("dummy://log4j.dtd");              return parser.parse(inputSource);          }          public String toString() {               return "input stream [" + inputStream.toString() + "]";           }      };      doConfigure(action, repository);  }  /**     Configure log4j by reading in a log4j.dtd compliant XML     configuration file.  */  public  void doConfigure(final Reader reader, LoggerRepository repository)                                           throws FactoryConfigurationError {      ParseAction action = new ParseAction() {          public Document parse(final DocumentBuilder parser) throws SAXException, IOException {              InputSource inputSource = new InputSource(reader);              inputSource.setSystemId("dummy://log4j.dtd");              return parser.parse(inputSource);          }          public String toString() {               return "reader [" + reader.toString() + "]";           }      };    doConfigure(action, repository);  }  /**     Configure log4j by reading in a log4j.dtd compliant XML     configuration file.  */  protected  void doConfigure(final InputSource inputSource, LoggerRepository repository)                                           throws FactoryConfigurationError {      if (inputSource.getSystemId() == null) {          inputSource.setSystemId("dummy://log4j.dtd");      }      ParseAction action = new ParseAction() {          public Document parse(final DocumentBuilder parser) throws SAXException, IOException {              return parser.parse(inputSource);          }          public String toString() {               return "input source [" + inputSource.toString() + "]";           }      };      doConfigure(action, repository);    }          private final void doConfigure(final ParseAction action, final LoggerRepository repository)         throws FactoryConfigurationError {    DocumentBuilderFactory dbf = null;    this.repository = repository;    try {       LogLog.debug("System property is :"+  	                        OptionConverter.getSystemProperty(dbfKey, 								  null));       dbf = DocumentBuilderFactory.newInstance();      LogLog.debug("Standard DocumentBuilderFactory search succeded.");      LogLog.debug("DocumentBuilderFactory is: "+dbf.getClass().getName());    } catch(FactoryConfigurationError fce) {      Exception e = fce.getException();      LogLog.debug("Could not instantiate a DocumentBuilderFactory.", e);      throw fce;    }          try {      dbf.setValidating(true);      DocumentBuilder docBuilder = dbf.newDocumentBuilder();      docBuilder.setErrorHandler(new SAXErrorHandler());            docBuilder.setEntityResolver(new Log4jEntityResolver());               Document doc = action.parse(docBuilder);           parse(doc.getDocumentElement());    } catch (Exception e) {      // I know this is miserable...      LogLog.error("Could not parse "+ action.toString() + ".", e);    }  }  /**     Configure by taking in an DOM element.   */  public void doConfigure(Element element, LoggerRepository repository) {    this.repository = repository;    parse(element);  }    /**     A static version of {@link #doConfigure(String, LoggerRepository)}.  */  static  public  void configure(String filename) throws FactoryConfigurationError {    new DOMConfigurator().doConfigure(filename, 				      LogManager.getLoggerRepository());  }  /**     A static version of {@link #doConfigure(URL, LoggerRepository)}.   */  static  public  void configure(URL url) throws FactoryConfigurationError {    new DOMConfigurator().doConfigure(url, LogManager.getLoggerRepository());  }  /**     Used internally to configure the log4j framework by parsing a DOM     tree of XML elements based on <a     href="doc-files/log4j.dtd">log4j.dtd</a>.       */  protected  void parse(Element element) {    String rootElementName = element.getTagName();    if (!rootElementName.equals(CONFIGURATION_TAG)) {      if(rootElementName.equals(OLD_CONFIGURATION_TAG)) {	LogLog.warn("The <"+OLD_CONFIGURATION_TAG+		     "> element has been deprecated.");	LogLog.warn("Use the <"+CONFIGURATION_TAG+"> element instead.");      } else {	LogLog.error("DOM element is - not a <"+CONFIGURATION_TAG+"> element.");	return;      }    }    String debugAttrib = subst(element.getAttribute(INTERNAL_DEBUG_ATTR));          LogLog.debug("debug attribute= \"" + debugAttrib +"\".");    // if the log4j.dtd is not specified in the XML file, then the    // "debug" attribute is returned as the empty string.    if(!debugAttrib.equals("") && !debugAttrib.equals("null")) {            LogLog.setInternalDebugging(OptionConverter.toBoolean(debugAttrib, true));    } else {      LogLog.debug("Ignoring " + INTERNAL_DEBUG_ATTR + " attribute.");    }    String confDebug = subst(element.getAttribute(CONFIG_DEBUG_ATTR));    if(!confDebug.equals("") && !confDebug.equals("null")) {            LogLog.warn("The \""+CONFIG_DEBUG_ATTR+"\" attribute is deprecated.");      LogLog.warn("Use the \""+INTERNAL_DEBUG_ATTR+"\" attribute instead.");      LogLog.setInternalDebugging(OptionConverter.toBoolean(confDebug, true));    }    String thresholdStr = subst(element.getAttribute(THRESHOLD_ATTR));    LogLog.debug("Threshold =\"" + thresholdStr +"\".");    if(!"".equals(thresholdStr) && !"null".equals(thresholdStr)) {      repository.setThreshold(thresholdStr);    }    //Hashtable appenderBag = new Hashtable(11);    /* Building Appender objects, placing them in a local namespace       for future reference */    // First configure each category factory under the root element.    // Category factories need to be configured before any of    // categories they support.    //    String   tagName = null;    Element  currentElement = null;    Node     currentNode = null;    NodeList children = element.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;	tagName = currentElement.getTagName();	if (tagName.equals(CATEGORY_FACTORY_TAG)) {	  parseCategoryFactory(currentElement);	}      }    }        for (int loop = 0; loop < length; loop++) {      currentNode = children.item(loop);      if (currentNode.getNodeType() == Node.ELEMENT_NODE) {	currentElement = (Element) currentNode;	tagName = currentElement.getTagName();	if (tagName.equals(CATEGORY) || tagName.equals(LOGGER)) {	  parseCategory(currentElement);	} else if (tagName.equals(ROOT_TAG)) {	  parseRoot(currentElement);	} else if(tagName.equals(RENDERER_TAG)) {	  parseRenderer(currentElement);	}      }    }  }    protected  String subst(String value) {    try {      return OptionConverter.substVars(value, props);    } catch(IllegalArgumentException e) {      LogLog.warn("Could not perform variable substitution.", e);      return value;    }  }}class XMLWatchdog extends FileWatchdog {  XMLWatchdog(String filename) {    super(filename);  }  /**     Call {@link PropertyConfigurator#configure(String)} with the     <code>filename</code> to reconfigure log4j. */  public  void doOnChange() {    new DOMConfigurator().doConfigure(filename, 				      LogManager.getLoggerRepository());  }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美日本一区视频| 亚洲狠狠丁香婷婷综合久久久| ww久久中文字幕| 亚洲美女淫视频| 国产一区二区视频在线播放| 欧美日本韩国一区二区三区视频| 欧美激情在线看| 精品一二三四区| 91精品国产综合久久精品麻豆| 国产精品卡一卡二| 激情成人综合网| 91麻豆精品91久久久久久清纯| 亚洲人快播电影网| 成人a区在线观看| 久久精品亚洲一区二区三区浴池| 亚洲成av人影院| 在线观看免费一区| 亚洲欧洲韩国日本视频| 国产999精品久久久久久| 精品少妇一区二区三区视频免付费| 亚洲一区av在线| 在线一区二区视频| 亚洲人成小说网站色在线| 成人av综合一区| 一区在线中文字幕| 成人免费观看男女羞羞视频| 亚洲国产高清在线观看视频| 国产精品原创巨作av| 久久精品视频在线免费观看| 韩国视频一区二区| 欧美xxxxxxxx| 国产乱国产乱300精品| 日韩一卡二卡三卡| 麻豆91免费看| 精品国产免费人成在线观看| 韩国女主播成人在线| 欧美精品一区二区三区久久久| 精品一区二区三区在线视频| 久久影音资源网| 国产精品69久久久久水密桃| 亚洲国产精品传媒在线观看| 91香蕉国产在线观看软件| 亚洲欧洲综合另类在线| 欧美视频在线一区二区三区| 午夜欧美电影在线观看| 精品欧美乱码久久久久久1区2区| 国产剧情一区二区三区| 欧美国产日韩亚洲一区| av一二三不卡影片| 天天av天天翘天天综合网| 91精品婷婷国产综合久久性色| 久久精品国产精品亚洲综合| 久久久久亚洲综合| 91香蕉视频黄| 蜜臀av国产精品久久久久| 亚洲精品一区二区三区香蕉| 成人av先锋影音| 洋洋成人永久网站入口| 日韩欧美的一区| www..com久久爱| 亚洲成a人片在线不卡一二三区| 日韩欧美中文字幕公布| 成人污视频在线观看| 亚洲制服丝袜av| 欧美成人欧美edvon| 99久久99久久精品免费观看| 亚欧色一区w666天堂| 久久久不卡网国产精品二区| 日本韩国精品在线| 国内成人精品2018免费看| 亚洲卡通动漫在线| 日韩精品一区在线| 91麻豆免费观看| 黑人精品欧美一区二区蜜桃| 一区二区在线观看免费| 久久亚洲综合色一区二区三区| 一本一道综合狠狠老| 国产乱子轮精品视频| 亚洲成人免费观看| 成人欧美一区二区三区黑人麻豆| 91精品久久久久久蜜臀| 97国产精品videossex| 久久99久久99精品免视看婷婷| 自拍av一区二区三区| 久久久国产精品不卡| 欧美一区二区三区电影| 欧美在线观看视频一区二区| 国产超碰在线一区| 另类小说视频一区二区| 亚洲愉拍自拍另类高清精品| 久久中文字幕电影| 日韩欧美一级二级三级久久久| 色一区在线观看| 高潮精品一区videoshd| 经典三级一区二区| 喷水一区二区三区| 亚洲aaa精品| 亚洲va欧美va人人爽午夜| 成人免费一区二区三区在线观看| 久久久久99精品一区| 日韩女同互慰一区二区| 欧美猛男超大videosgay| 日本韩国欧美在线| 91蜜桃免费观看视频| 波波电影院一区二区三区| 国产精品亚洲视频| 国产乱码精品一区二区三区忘忧草| 久久精品国产99国产| 日本视频一区二区三区| 日韩精品一级二级| 日韩不卡免费视频| 日本中文字幕不卡| 蜜臀av国产精品久久久久 | 久久免费电影网| 精品对白一区国产伦| 欧美成人免费网站| 26uuu精品一区二区| 精品欧美一区二区在线观看| 精品国产百合女同互慰| 337p日本欧洲亚洲大胆色噜噜| 精品对白一区国产伦| 国产区在线观看成人精品| 中文字幕不卡在线播放| 综合中文字幕亚洲| 亚洲一区二区三区在线看| 亚洲在线免费播放| 蜜臀av一区二区三区| 国精产品一区一区三区mba桃花| 国产在线一区二区| 高清不卡在线观看av| 91丨porny丨国产| 欧美色视频在线| 日韩欧美在线网站| 中文欧美字幕免费| 一区二区在线观看免费视频播放| 午夜精品久久一牛影视| 韩日欧美一区二区三区| 91蝌蚪porny| 欧美精品日韩综合在线| 久久人人97超碰com| 亚洲日本在线天堂| 日韩高清国产一区在线| 国产精品一区二区视频| 91蜜桃在线免费视频| 欧美精品tushy高清| 欧美国产一区在线| 天堂一区二区在线| 懂色av噜噜一区二区三区av| 欧美日韩一区三区| 久久先锋影音av鲁色资源| 亚洲视频一二区| 美女视频一区在线观看| 91欧美一区二区| 欧美成人综合网站| 亚洲欧美韩国综合色| 久久精品国产免费看久久精品| 91丨porny丨首页| 久久品道一品道久久精品| 日韩理论片一区二区| 久久成人综合网| 欧美在线观看禁18| 国产日产欧美一区二区视频| 亚洲成人av在线电影| 国产 欧美在线| 欧美一区二区不卡视频| 亚洲三级在线看| 国产久卡久卡久卡久卡视频精品| 在线观看视频一区二区| 国产女主播视频一区二区| 日韩av午夜在线观看| 色综合久久久网| 国产色综合久久| 奇米四色…亚洲| 欧美三级在线看| 亚洲人成精品久久久久| 国产精一品亚洲二区在线视频| 欧美精品久久久久久久多人混战| 亚洲色图视频网| 成人免费视频免费观看| 欧美精品一区男女天堂| 欧美aaa在线| 欧美久久久影院| 亚洲第一久久影院| 一本一本大道香蕉久在线精品 | 1区2区3区精品视频| 韩日欧美一区二区三区| 日韩一级免费一区| 午夜影视日本亚洲欧洲精品| 欧美三级视频在线观看| 亚洲综合久久av| 不卡欧美aaaaa| 国产精品天美传媒| 成人av在线资源网| 国产精品无遮挡| 成人精品视频一区二区三区尤物| 久久伊人中文字幕| 国产精品自在欧美一区| 精品国产乱码久久久久久久久 | 精品国产露脸精彩对白| 美女一区二区三区在线观看|