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

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

?? slf4jlogfactory.java

?? Java開發最新的日志記錄工具slf4j的源碼
?? JAVA
字號:
/* * Copyright 2001-2004 The Apache Software Foundation. *  * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at *  *      http://www.apache.org/licenses/LICENSE-2.0 *  * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package org.apache.commons.logging.impl;import java.util.Enumeration;import java.util.HashMap;import java.util.Hashtable;import java.util.Map;import java.util.Vector;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogConfigurationException;import org.apache.commons.logging.LogFactory;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.slf4j.spi.LocationAwareLogger;/** * <p> * Concrete subclass of {@link LogFactory} which always delegates to the * {@link LoggerFactory org.slf4j.LoggerFactory} class. *  * <p> * This factory generates instances of {@link SLF4JLog}. It will remember * previously created instances for the same name, and will return them on * repeated requests to the <code>getInstance()</code> method. *  * <p> * This implementation ignores any configured attributes. * </p> *  * @author Rod Waldhoff * @author Craig R. McClanahan * @author Richard A. Sitze * @author Ceki G&uuml;lc&uuml; */public class SLF4JLogFactory extends LogFactory {  // ----------------------------------------------------------- Constructors  /**   * The {@link org.apache.commons.logging.Log}instances that have already been   * created, keyed by logger name.   */  Map loggerMap;  /**   * Public no-arguments constructor required by the lookup mechanism.   */  public SLF4JLogFactory() {    loggerMap = new HashMap();  }  // ----------------------------------------------------- Manifest Constants  /**   * The name of the system property identifying our {@link Log}implementation   * class.   */  public static final String LOG_PROPERTY = "org.apache.commons.logging.Log";  // ----------------------------------------------------- Instance Variables  /**   * Configuration attributes.   */  protected Hashtable attributes = new Hashtable();  // --------------------------------------------------------- Public Methods  /**   * Return the configuration attribute with the specified name (if any), or   * <code>null</code> if there is no such attribute.   *    * @param name   *          Name of the attribute to return   */  public Object getAttribute(String name) {    return (attributes.get(name));  }  /**   * Return an array containing the names of all currently defined configuration   * attributes. If there are no such attributes, a zero length array is   * returned.   */  public String[] getAttributeNames() {    Vector names = new Vector();    Enumeration keys = attributes.keys();    while (keys.hasMoreElements()) {      names.addElement((String) keys.nextElement());    }    String results[] = new String[names.size()];    for (int i = 0; i < results.length; i++) {      results[i] = (String) names.elementAt(i);    }    return (results);  }  /**   * Convenience method to derive a name from the specified class and call   * <code>getInstance(String)</code> with it.   *    * @param clazz   *          Class for which a suitable Log name will be derived   *    * @exception LogConfigurationException   *              if a suitable <code>Log</code> instance cannot be returned   */  public Log getInstance(Class clazz) throws LogConfigurationException {    return (getInstance(clazz.getName()));  }  /**   * <p>   * Construct (if necessary) and return a <code>Log</code> instance, using   * the factory's current set of configuration attributes.   * </p>   *    * @param name   *          Logical name of the <code>Log</code> instance to be returned   *          (the meaning of this name is only known to the underlying logging   *          implementation that is being wrapped)   *    * @exception LogConfigurationException   *              if a suitable <code>Log</code> instance cannot be returned   */  public Log getInstance(String name) throws LogConfigurationException {    Log instance = null;    // protect against concurrent access of loggerMap    synchronized (this) {      instance = (Log) loggerMap.get(name);      if (instance == null) {        Logger logger = LoggerFactory.getLogger(name);        if(logger instanceof LocationAwareLogger) {          instance = new SLF4JLocationAwareLog((LocationAwareLogger) logger);        } else {          instance = new SLF4JLog(logger);        }        loggerMap.put(name, instance);      }    }    return (instance);  }  /**   * Release any internal references to previously created   * {@link org.apache.commons.logging.Log}instances returned by this factory.   * This is useful in environments like servlet containers, which implement   * application reloading by throwing away a ClassLoader. Dangling references   * to objects in that class loader would prevent garbage collection.   */  public void release() {    // This method is never called by jcl-over-slf4j classes. However,    // in certain deployment scenarios, in particular if jcl-over-slf4j.jar    // is    // in the the web-app class loader and the official commons-logging.jar is    // deployed in some parent class loader (e.g. commons/lib), then it is    // possible    // for the parent class loader to mask the classes shipping in    // jcl-over-slf4j.jar.    System.out.println("WARN: The method " + SLF4JLogFactory.class        + "#release() was invoked.");    System.out        .println("WARN: Please see http://www.slf4j.org/codes.html#release for an explanation.");    System.out.flush();  }  /**   * Remove any configuration attribute associated with the specified name. If   * there is no such attribute, no action is taken.   *    * @param name   *          Name of the attribute to remove   */  public void removeAttribute(String name) {    attributes.remove(name);  }  /**   * Set the configuration attribute with the specified name. Calling this with   * a <code>null</code> value is equivalent to calling   * <code>removeAttribute(name)</code>.   *    * @param name   *          Name of the attribute to set   * @param value   *          Value of the attribute to set, or <code>null</code> to remove   *          any setting for this attribute   */  public void setAttribute(String name, Object value) {    if (value == null) {      attributes.remove(name);    } else {      attributes.put(name, value);    }  }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人午夜电影小说| 国产三区在线成人av| 国产丝袜在线精品| 国产精品综合一区二区三区| 中文字幕制服丝袜一区二区三区 | 蜜臀va亚洲va欧美va天堂| 久久亚洲综合色一区二区三区| 7777精品伊人久久久大香线蕉的 | 怡红院av一区二区三区| 精品一区二区国语对白| 欧美精品丝袜久久久中文字幕| 亚洲国产一区二区三区| 91精品免费观看| 看电视剧不卡顿的网站| 亚洲国产精品ⅴa在线观看| 成人美女在线视频| 一区二区三区.www| 日韩欧美国产系列| 成人午夜又粗又硬又大| 亚洲五码中文字幕| 日韩一二三四区| 高清视频一区二区| 亚洲激情自拍偷拍| 欧美一区二区三区免费大片| 国产91丝袜在线播放| 一区二区三区成人| 2023国产精华国产精品| 一本色道a无线码一区v| 午夜激情一区二区三区| 久久亚洲综合色一区二区三区| 99久久99久久综合| 蜜臀99久久精品久久久久久软件| 日本一区二区三区免费乱视频| 色综合天天综合网天天看片| 日本系列欧美系列| 国产精品久久久久久久久果冻传媒| 欧美综合在线视频| 国产一区日韩二区欧美三区| 亚洲女女做受ⅹxx高潮| 久久午夜电影网| 欧美色图片你懂的| 成人久久久精品乱码一区二区三区| 玉足女爽爽91| 久久久久久久久久久99999| 成人在线视频首页| 久久国产人妖系列| 亚洲美女视频一区| 欧美一级久久久久久久大片| 91麻豆国产福利精品| 美腿丝袜亚洲综合| 亚洲欧洲日本在线| 欧美一区中文字幕| 成人白浆超碰人人人人| 日韩高清在线观看| 中文字幕一区二区三区乱码在线 | 日韩欧美亚洲国产另类| 国产不卡在线一区| 日本欧美一区二区三区乱码 | 国产精品中文欧美| 亚洲不卡一区二区三区| 久久久久97国产精华液好用吗| 色综合久久66| 国产iv一区二区三区| 日韩电影在线一区| 国产精品污www在线观看| 在线观看视频91| 99久久国产免费看| 国产乱淫av一区二区三区| 午夜精品一区二区三区免费视频 | 奇米精品一区二区三区四区| 中文字幕在线不卡一区| 欧美不卡123| 欧美日韩日本视频| 91丨porny丨国产入口| 国内成人精品2018免费看| 性欧美大战久久久久久久久| 亚洲日本在线观看| 久久久综合激的五月天| 欧美成人bangbros| 欧美嫩在线观看| 在线中文字幕一区| 91蝌蚪porny九色| 成人激情综合网站| 国内精品视频666| 捆绑变态av一区二区三区| 亚洲国产精品人人做人人爽| 久久国产视频网| 国产日产欧美一区二区视频| 久久久精品综合| 精品国产亚洲一区二区三区在线观看| 欧美日韩精品欧美日韩精品一 | 午夜久久久影院| 亚洲18影院在线观看| 亚洲午夜视频在线| 玉足女爽爽91| 一区二区三区日韩精品视频| 国产精品国产三级国产aⅴ原创| 精品欧美一区二区三区精品久久| 91精品国产91久久久久久一区二区 | 欧美性色综合网| 在线免费观看日韩欧美| 欧美色综合天天久久综合精品| 色94色欧美sute亚洲13| 在线观看不卡视频| 欧美午夜理伦三级在线观看| 欧美性大战久久久| 777a∨成人精品桃花网| 日韩一区二区在线免费观看| 欧美久久久久免费| 日韩三区在线观看| 2023国产精品视频| 日韩精品一区二区三区视频 | 99久久精品免费看| 国产成人在线看| 一本久久a久久免费精品不卡| 91美女福利视频| 欧美日韩精品三区| 精品国产亚洲一区二区三区在线观看 | 午夜av电影一区| 美女一区二区三区在线观看| 国产精品77777竹菊影视小说| 国产成人av一区二区| 99国内精品久久| 欧美美女黄视频| 欧美mv和日韩mv国产网站| 国产农村妇女精品| 国产情人综合久久777777| 国产日韩欧美精品电影三级在线| 国产精品五月天| 亚洲va欧美va人人爽| 国产精品18久久久久久久久| 91在线高清观看| 精品国产第一区二区三区观看体验| 欧美国产激情一区二区三区蜜月| 亚洲福利一二三区| 国产一区二区三区四区五区入口| 精品视频1区2区3区| 精品国内片67194| 亚洲小少妇裸体bbw| 国产最新精品免费| 7777精品伊人久久久大香线蕉最新版 | 中文字幕一区二区不卡 | 欧美精品一区二区久久久| 亚洲欧美二区三区| 日韩不卡一区二区| av亚洲产国偷v产偷v自拍| 欧美va亚洲va| 亚洲国产精品尤物yw在线观看| 国产成人亚洲综合a∨婷婷| 欧美日韩国产a| 欧美日韩精品是欧美日韩精品| 国产欧美一区二区精品久导航| 麻豆精品精品国产自在97香蕉| 色综合久久中文字幕综合网| 国产片一区二区| 久久国产视频网| 亚洲一区二区在线免费看| 91在线播放网址| 欧美激情资源网| 国产成人精品免费网站| 欧美一区二区福利在线| 五月天激情小说综合| 高清shemale亚洲人妖| 久久综合九色综合欧美98| 亚洲午夜久久久久久久久电影院| 色悠悠亚洲一区二区| 欧美国产一区在线| 国产精品一区免费在线观看| 日韩一区二区三区视频在线| 亚洲一区在线观看网站| 欧美色网一区二区| 亚洲精品国产视频| 99在线精品观看| 亚洲日本在线观看| 粉嫩一区二区三区在线看| 欧美一区中文字幕| 亚洲www啪成人一区二区麻豆| 色综合久久综合中文综合网| 欧美激情一区在线| 91最新地址在线播放| 日韩欧美国产小视频| 国内精品嫩模私拍在线| 色综合视频在线观看| 亚洲精品第一国产综合野| 久久精品国产亚洲5555| 日韩一区二区影院| 奇米综合一区二区三区精品视频| 欧美美女激情18p| 午夜久久久影院| 欧美一区二区视频在线观看| 久久99精品国产91久久来源| 日韩免费性生活视频播放| 国内成+人亚洲+欧美+综合在线| 久久人人97超碰com| 99精品视频在线免费观看| 亚洲精选视频在线| 欧美一级在线观看| 国产毛片一区二区| 亚洲免费成人av| 欧美日韩美少妇|