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

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

?? basicmdcadapter.java

?? Java開發最新的日志記錄工具slf4j的源碼
?? JAVA
字號:
/* 
 * Copyright (c) 2004-2008 QOS.ch
 * All rights reserved.
 * 
 * Permission is hereby granted, free  of charge, to any person obtaining
 * a  copy  of this  software  and  associated  documentation files  (the
 * "Software"), to  deal in  the Software without  restriction, including
 * without limitation  the rights to  use, copy, modify,  merge, publish,
 * distribute,  sublicense, and/or sell  copies of  the Software,  and to
 * permit persons to whom the Software  is furnished to do so, subject to
 * the following conditions:
 * 
 * The  above  copyright  notice  and  this permission  notice  shall  be
 * included in all copies or substantial portions of the Software.
 * 
 * THE  SOFTWARE IS  PROVIDED  "AS  IS", WITHOUT  WARRANTY  OF ANY  KIND,
 * EXPRESS OR  IMPLIED, INCLUDING  BUT NOT LIMITED  TO THE  WARRANTIES OF
 * MERCHANTABILITY,    FITNESS    FOR    A   PARTICULAR    PURPOSE    AND
 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
 * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
 * OF CONTRACT, TORT OR OTHERWISE,  ARISING FROM, OUT OF OR IN CONNECTION
 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 */
package org.slf4j.helpers;

import org.slf4j.spi.MDCAdapter;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

/**
 * Basic MDC implementation, which can be used with logging systems that lack
 * out-of-the-box MDC support.
 * 
 * This code is largely based on logback's <a
 * href="http://svn.qos.ch/viewvc/logback/trunk/logback-classic/src/main/java/org/slf4j/impl/LogbackMDCAdapter.java">
 * LogbackMDCAdapter</a>.
 * 
 * @author Ceki Gulcu
 * @author Maarten Bosteels
 * 
 * @since 1.5.0
 */
public class BasicMDCAdapter implements MDCAdapter {

  private InheritableThreadLocal inheritableThreadLocal = new InheritableThreadLocal();

  /**
   * Put a context value (the <code>val</code> parameter) as identified with
   * the <code>key</code> parameter into the current thread's context map.
   * Note that contrary to log4j, the <code>val</code> parameter can be null.
   * 
   * <p>
   * If the current thread does not have a context map it is created as a side
   * effect of this call.
   * 
   * @throws IllegalArgumentException
   *                 in case the "key" parameter is null
   */
  public void put(String key, String val) {
    if (key == null) {
      throw new IllegalArgumentException("key cannot be null");
    }
    HashMap map = (HashMap) inheritableThreadLocal.get();
    if (map == null) {
      map = new HashMap();
      inheritableThreadLocal.set(map);
    }
    map.put(key, val);
  }

  /**
   * Get the context identified by the <code>key</code> parameter.
   */
  public String get(String key) {
    HashMap hashMap = (HashMap) inheritableThreadLocal.get();
    if ((hashMap != null) && (key != null)) {
      return (String) hashMap.get(key);
    } else {
      return null;
    }
  }

  /**
   * Remove the the context identified by the <code>key</code> parameter.
   */
  public void remove(String key) {
    HashMap map = (HashMap) inheritableThreadLocal.get();
    if (map != null) {
      map.remove(key);
    }
  }

  /**
   * Clear all entries in the MDC.
   */
  public void clear() {
    HashMap hashMap = (HashMap) inheritableThreadLocal.get();
    if (hashMap != null) {
      hashMap.clear();
      // the InheritableThreadLocal.remove method was introduced in JDK 1.5
      // Thus, invoking clear() on previous JDK's will fail
      inheritableThreadLocal.remove();
    }
  }

  /**
   * Returns the keys in the MDC as a {@link Set} of {@link String}s The
   * returned value can be null.
   * 
   * @return the keys in the MDC
   */
  public Set getKeys() {
    HashMap hashMap = (HashMap) inheritableThreadLocal.get();
    if (hashMap != null) {
      return hashMap.keySet();
    } else {
      return null;
    }
  }
  /**
   * Return a copy of the current thread's context map. 
   * Returned value may be null.
   * 
   */
  public Map getCopyOfContextMap() {
    HashMap hashMap = (HashMap) inheritableThreadLocal.get();
    if (hashMap != null) {
      return new HashMap(hashMap);
    } else {
      return null;
    }
  }

  public void setContextMap(Map contextMap) {
    HashMap hashMap = (HashMap) inheritableThreadLocal.get();
    if (hashMap != null) {
      hashMap.clear();
      hashMap.putAll(contextMap);
    } else {
      hashMap = new HashMap(contextMap);
      inheritableThreadLocal.set(hashMap);
    }
  }

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产精品自拍| 亚洲第一主播视频| 日韩精品影音先锋| 国产精品一区二区三区网站| 日韩中文字幕不卡| 男女男精品网站| 麻豆一区二区在线| 紧缚奴在线一区二区三区| 视频一区在线播放| 麻豆成人av在线| 国产呦精品一区二区三区网站| 国产精品一区二区久久精品爱涩| 久久精品免费观看| 国产mv日韩mv欧美| a4yy欧美一区二区三区| 色婷婷精品久久二区二区蜜臀av| av在线不卡电影| 在线精品视频一区二区| 7777精品伊人久久久大香线蕉经典版下载| 555www色欧美视频| 精品理论电影在线| 中文字幕一区在线| 日韩精品福利网| 粉嫩av一区二区三区在线播放 | 色婷婷国产精品久久包臀| 欧美一区二区三区爱爱| 一区二区在线电影| 欧美唯美清纯偷拍| 555www色欧美视频| 国产欧美日韩卡一| 夜夜操天天操亚洲| 日本va欧美va精品发布| 粉嫩欧美一区二区三区高清影视| 成人国产电影网| 欧美日韩1区2区| 国产女人18毛片水真多成人如厕 | 成人av小说网| 欧美日韩一区成人| 久久九九国产精品| 亚洲五码中文字幕| 国内国产精品久久| 欧美三级电影一区| 中文天堂在线一区| 蜜臀国产一区二区三区在线播放| 成人综合在线观看| 精品美女在线观看| 亚洲精品成人精品456| 国产一区二区三区四区五区入口| 色94色欧美sute亚洲线路一ni| 精品欧美久久久| 亚洲福利一区二区| 一本色道a无线码一区v| 欧美国产激情二区三区| 麻豆久久一区二区| 5858s免费视频成人| 一区二区三区中文字幕在线观看| 国产91精品精华液一区二区三区 | 国产精品夜夜嗨| 欧美一区二区三区电影| 亚洲小说欧美激情另类| 丁香婷婷综合五月| 久久久久99精品国产片| 蜜臀精品久久久久久蜜臀| 欧美日韩精品电影| 亚洲制服丝袜av| 91蜜桃在线免费视频| 日本一区二区三区久久久久久久久不 | 欧美日韩不卡在线| 一区二区三区精品视频| 91麻豆高清视频| 亚洲欧美视频在线观看视频| 成人晚上爱看视频| 日本一区二区三区在线观看| 成人在线视频首页| 国产精品欧美一区二区三区| 国产美女视频一区| 国产亚洲成av人在线观看导航 | 国产女同性恋一区二区| 丁香桃色午夜亚洲一区二区三区| 欧美va亚洲va在线观看蝴蝶网| 美女视频黄a大片欧美| 在线观看视频一区二区| 亚洲曰韩产成在线| 欧美日韩亚洲综合一区| 偷拍自拍另类欧美| 欧美大片一区二区| 国产99久久久国产精品潘金网站| 久久久久亚洲综合| 成+人+亚洲+综合天堂| 亚洲精品日产精品乱码不卡| 一本久久精品一区二区| 亚洲第一久久影院| 日韩精品影音先锋| 成人av网站在线观看| 亚洲天堂av老司机| 欧美亚洲综合网| 日av在线不卡| 欧美国产精品久久| 欧美图区在线视频| 另类专区欧美蜜桃臀第一页| 久久精品水蜜桃av综合天堂| 菠萝蜜视频在线观看一区| 亚洲一区二区三区四区五区黄| 69堂精品视频| 国产福利一区二区三区视频在线 | 亚洲蜜臀av乱码久久精品蜜桃| 欧美熟乱第一页| 国产一区二区三区香蕉| 一区二区三区资源| 久久久久青草大香线综合精品| 91日韩一区二区三区| 精品一区二区三区av| 亚洲欧美偷拍卡通变态| 精品日韩99亚洲| 在线视频你懂得一区二区三区| 久久福利资源站| 亚洲国产欧美一区二区三区丁香婷| 欧美电影免费提供在线观看| 91免费看片在线观看| 精品一区二区在线免费观看| 亚洲精品视频在线看| 久久免费午夜影院| 91精品福利在线一区二区三区| 福利一区在线观看| 免费成人在线视频观看| 一区二区三区高清在线| 国产欧美日韩三区| 日韩欧美一级片| 91国偷自产一区二区使用方法| 精品一区二区日韩| 午夜视频在线观看一区二区| 国产精品网站导航| 久久久一区二区| 91精品久久久久久久99蜜桃| 91亚洲午夜精品久久久久久| 国产一区在线精品| 久久成人av少妇免费| 午夜国产精品一区| 亚洲综合色成人| 亚洲精品欧美综合四区| 亚洲欧洲日本在线| 中文字幕欧美国产| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 亚洲成人在线免费| 综合欧美一区二区三区| 久久精品视频一区二区三区| 欧美一区二区视频在线观看2020 | 久久精品久久综合| 青青草成人在线观看| 日韩精品色哟哟| 视频一区中文字幕国产| 亚洲成人7777| 日本在线不卡视频| 免费在线视频一区| 美国十次了思思久久精品导航| 亚洲成人黄色影院| 亚洲bdsm女犯bdsm网站| 午夜精品爽啪视频| 日韩成人av影视| 免费观看成人av| 国产一区二区不卡老阿姨| 国产伦精一区二区三区| 国产美女精品在线| 高清久久久久久| www.亚洲人| 在线观看不卡视频| 欧美一区二区黄| 2023国产精华国产精品| 久久久久久久久久久久久久久99 | 欧美日韩国产色站一区二区三区| 欧美日韩国产在线播放网站| 欧美久久免费观看| 7878成人国产在线观看| 日韩欧美高清dvd碟片| 26uuu精品一区二区三区四区在线| 精品成a人在线观看| 国产精品毛片高清在线完整版| 亚洲欧洲成人av每日更新| 亚洲一区二区三区精品在线| 偷拍一区二区三区| 国产精品一二三区在线| 91久久国产综合久久| 91精品麻豆日日躁夜夜躁| 久久久久久久久99精品| 亚洲最大成人网4388xx| 久久av资源网| 色综合久久天天| 日韩免费福利电影在线观看| 中文一区二区在线观看| 夜夜精品视频一区二区| 国产精品中文字幕日韩精品| 97成人超碰视| 日韩一区和二区| 亚洲免费观看在线视频| 久久99精品久久久| 在线免费亚洲电影| 国产欧美一区二区精品久导航| 日韩中文字幕91| av中文字幕不卡| 欧美v国产在线一区二区三区|