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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? category.java

?? Java開發(fā)最新的日志記錄工具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.log4j;

import org.slf4j.LoggerFactory;
import org.slf4j.Marker;
import org.slf4j.MarkerFactory;
import org.slf4j.spi.LocationAwareLogger;

/**
 * <p>
 * This class is a minimal implementation of the original
 * <code>org.apache.log4j.Category</code> class (as found in log4j 1.2) 
 * by delegation of all calls to a {@link org.slf4j.Logger.Logger} instance.
 * </p>
 * 
 * <p>
 * Log4j's <code>trace</code>, <code>debug()</code>, <code>info()</code>, 
 * <code>warn()</code>, <code>error()</code> printing methods are directly 
 * mapped to their SLF4J equivalents. Log4j's <code>fatal()</code> 
 * printing method is mapped to SLF4J's <code>error()</code> method 
 * with a FATAL marker.
 * 
 * @author S&eacute;bastien Pennec
 * @author Ceki G&uuml;lc&uuml;
 */
public class Category {

  private String name;

  protected org.slf4j.Logger slf4jLogger;
  private org.slf4j.spi.LocationAwareLogger locationAwareLogger;
  
  private static Marker FATAL_MARKER = MarkerFactory.getMarker("FATAL");

  Category(String name) {
    this.name = name;
    slf4jLogger = LoggerFactory.getLogger(name);
    if(slf4jLogger instanceof LocationAwareLogger) {
      locationAwareLogger = (LocationAwareLogger) slf4jLogger;
    }
  }

  public static Category getInstance(Class clazz) {
    return Log4jLoggerFactory.getLogger(clazz.getName());
  }

  public static Category getInstance(String name) {
    return Log4jLoggerFactory.getLogger(name);
  }

  /**
   * Returns the obvious.
   * 
   * @return
   */
  public String getName() {
    return name;
  }

  /**
   * Return the level in effect for this category/logger.
   * 
   * <p>
   * The result is computed by simulation.
   * 
   * @return
   */
  public Level getEffectiveLevel() {
    if(slf4jLogger.isTraceEnabled()) {
      return Level.TRACE;
    }
    if(slf4jLogger.isDebugEnabled()) {
      return Level.DEBUG;
    }
    if(slf4jLogger.isInfoEnabled()) {
      return Level.INFO;
    }
    if(slf4jLogger.isWarnEnabled()) {
      return Level.WARN;
    }
    return Level.ERROR;
  }

  /**
   * Returns the assigned {@link Level}, if any, for this Category.
   * This implementation always returns null.
   * 
   * @return Level - the assigned Level, can be <code>null</code>.
   */
  final public Level getLevel() {
    return null;
  }


  /**
   * @deprecated Please use {@link #getLevel} instead.
  */
  final public Level getPriority() {
    return null;
  }
  
  /**
   * Delegates to {@link org.slf4j.Logger#isDebugEnabled} method in  SLF4J
   */
  public boolean isDebugEnabled() {
    return slf4jLogger.isDebugEnabled();
  }

  /**
   * Delegates to {@link org.slf4j.Logger#isInfoEnabled} method in  SLF4J
   */
  public boolean isInfoEnabled() {
    return slf4jLogger.isInfoEnabled();
  }

  /**
   * Delegates tob {@link org.slf4j.Logger#isWarnEnabled} method in  SLF4J
   */
  public boolean isWarnEnabled() {
    return slf4jLogger.isWarnEnabled();
  }
  
  /**
   * Delegates to {@link org.slf4j.Logger#isErrorEnabled} method in SLF4J
   */
  public boolean isErrorEnabled() {
    return slf4jLogger.isErrorEnabled();
  }
  

  /**
   * Determines whether the priority passed as parameter is enabled in
   * the underlying SLF4J logger. Each log4j priority is mapped directly to
   * its SLF4J equivalent, except for FATAL which is mapped as ERROR. 
   * 
   * @param p the priority to check against
   * @return true if this logger is enabled for the given level, false otherwise.
   */
  public boolean isEnabledFor(Priority p) {
    switch (p.level) {
    case Level.TRACE_INT:
      return slf4jLogger.isTraceEnabled();
    case Level.DEBUG_INT:
      return slf4jLogger.isDebugEnabled();
    case Level.INFO_INT:
      return slf4jLogger.isInfoEnabled();
    case Level.WARN_INT:
      return slf4jLogger.isWarnEnabled();
    case Level.ERROR_INT:
      return slf4jLogger.isErrorEnabled();
    case Priority.FATAL_INT:
      return slf4jLogger.isErrorEnabled();
    }
    return false;
  }

  
  /**
   * Delegates to {@link org.slf4j.Logger#debug(String)} method of
   * SLF4J.
   */
  public void debug(Object message) {
    // casting to String as SLF4J only accepts String instances, not Object
    // instances.
    slf4jLogger.debug(convertToString(message));
  }

  /**
   * Delegates to {@link org.slf4j.Logger#debug(String,Throwable)} 
   * method in SLF4J.
   */
  public void debug(Object message, Throwable t) {
    slf4jLogger.debug(convertToString(message), t);
  }

  /**
   * Delegates to {@link org.slf4j.Logger#info(String)} 
   * method in SLF4J.
   */
  public void info(Object message) {
    slf4jLogger.info(convertToString(message));
  }

  /**
   * Delegates to {@link org.slf4j.Logger#info(String,Throwable)} 
   * method in SLF4J.
   */
  public void info(Object message, Throwable t) {
    slf4jLogger.info(convertToString(message), t);
  }

  /**
   * Delegates to {@link org.slf4j.Logger#warn(String)} 
   * method in SLF4J.
   */
  public void warn(Object message) {
    slf4jLogger.warn(convertToString(message));
  }

  /**
   * Delegates to {@link org.slf4j.Logger#warn(String,Throwable)} 
   * method in SLF4J.
   */
  public void warn(Object message, Throwable t) {
    slf4jLogger.warn(convertToString(message), t);
  }

  
  /**
   * Delegates to {@link org.slf4j.Logger#error(String)} 
   * method in SLF4J.
   */
  public void error(Object message) {
    slf4jLogger.error(convertToString(message));
  }

  /**
   * Delegates to {@link org.slf4j.Logger#error(String,Throwable)} 
   * method in SLF4J.
   */
  public void error(Object message, Throwable t) {
    slf4jLogger.error(convertToString(message), t);
  }

  /**
   * Delegates to {@link org.slf4j.Logger#error(String)} 
   * method in SLF4J.
   */
  public void fatal(Object message) {
    slf4jLogger.error(FATAL_MARKER, convertToString(message));
  }

  /**
   * Delegates to {@link org.slf4j.Logger#error(String,Throwable)} 
   * method in SLF4J. In addition, the call is marked with a marker named "FATAL".
   */
  public void fatal(Object message, Throwable t) {
    slf4jLogger.error(FATAL_MARKER, convertToString(message), t);
  }

  public void log(String FQCN, Priority p, Object msg, Throwable t) {
    int levelInt = priorityToLevelInt(p);
    if(locationAwareLogger != null) {
      if(msg != null) {
        locationAwareLogger.log(null, FQCN, levelInt, msg.toString(), t); 
      } else {
        locationAwareLogger.log(null, FQCN, levelInt, null, t); 
      }
    } else {
      throw new UnsupportedOperationException("The logger ["+slf4jLogger+"] does not seem to be location aware.");
    }
   
  }
  
  private int priorityToLevelInt(Priority p) {
    switch (p.level) {
    case Level.TRACE_INT:
      return LocationAwareLogger.TRACE_INT;
    case Priority.DEBUG_INT:
      return LocationAwareLogger.DEBUG_INT;
    case Priority.INFO_INT:
      return LocationAwareLogger.INFO_INT;
    case Priority.WARN_INT:
      return LocationAwareLogger.WARN_INT;
    case Priority.ERROR_INT:
      return LocationAwareLogger.ERROR_INT;
    case Priority.FATAL_INT:
      return LocationAwareLogger.ERROR_INT;
    default:
      throw new IllegalStateException("Unknown Priority " + p);
    }
  }
  
  protected final String convertToString(Object message) {
    if (message == null) {
      return (String)message;
    } else {
      return message.toString();
    }
  }

}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日本在线观看| 精品一区二区精品| 成人精品小蝌蚪| 91高清视频在线| 成人免费在线视频| 久久av老司机精品网站导航| 欧美午夜一区二区三区| 亚洲成人福利片| 日韩视频不卡中文| 粉嫩av一区二区三区粉嫩| 1024精品合集| 3d成人h动漫网站入口| 久久99精品一区二区三区| 国产女人18毛片水真多成人如厕| 欧美日韩一区高清| 亚瑟在线精品视频| 精品久久免费看| 99re在线精品| 首页国产欧美久久| 欧美国产精品一区二区| 欧美亚洲图片小说| 国产做a爰片久久毛片| 国产精品国产三级国产普通话三级| 欧美性色欧美a在线播放| 久久精品国产99| 亚洲人成网站在线| 精品人伦一区二区色婷婷| 99re成人在线| 久久国产尿小便嘘嘘尿| 亚洲男人的天堂一区二区| 91精品婷婷国产综合久久 | 91精品综合久久久久久| 激情综合亚洲精品| 亚洲资源中文字幕| 国产欧美日韩在线| 欧美亚洲国产bt| 国产黄色精品视频| 日本中文字幕一区二区有限公司| 亚洲国产成人一区二区三区| 欧美精品久久一区| 99国内精品久久| 麻豆成人久久精品二区三区小说| 亚洲激情自拍视频| 欧美激情综合在线| 欧美一区二区日韩一区二区| 色婷婷精品大视频在线蜜桃视频| 狠狠色综合播放一区二区| 一区二区三区精品在线观看| 国产欧美日韩综合精品一区二区| 制服丝袜在线91| 91丨九色丨国产丨porny| 极品少妇一区二区| 青草国产精品久久久久久| 亚洲婷婷国产精品电影人久久| 欧美一区二区大片| 欧美日精品一区视频| 91在线视频网址| 国产美女精品一区二区三区| 麻豆91小视频| 免费成人在线视频观看| 亚洲成在人线免费| 亚洲一区二区在线观看视频| 一区在线中文字幕| 国产精品福利一区| 国产精品盗摄一区二区三区| 国产午夜亚洲精品理论片色戒 | 91久久精品国产91性色tv| 国产精品中文欧美| 国产一区二区精品在线观看| 久久er99精品| 黑人巨大精品欧美黑白配亚洲| 日韩不卡免费视频| 日韩精品一二三四| 美腿丝袜在线亚洲一区| 日本不卡的三区四区五区| 日韩av一级片| 免费成人在线播放| 精品中文字幕一区二区| 九一久久久久久| 国产成人av一区二区三区在线 | 成人黄色av电影| 成人免费观看视频| www.欧美日韩国产在线| 色综合久久久久综合体| 欧美图区在线视频| 欧美巨大另类极品videosbest | 免费人成在线不卡| 精品无码三级在线观看视频| 国产一区二区中文字幕| 国产精品99久久久久久有的能看| 精品一二三四在线| 国产成人午夜精品影院观看视频 | 91在线高清观看| 欧美午夜理伦三级在线观看| 91麻豆精品91久久久久久清纯 | 欧美精品日日鲁夜夜添| 91精品国产入口| 久久综合色婷婷| 国产精品丝袜黑色高跟| 一区二区三区精品| 美女视频一区二区三区| 国产 欧美在线| 欧洲激情一区二区| 欧美一区二区在线不卡| 国产欧美中文在线| 亚洲欧美视频一区| 蜜桃视频第一区免费观看| 成人一区在线观看| 欧美调教femdomvk| 亚洲精品一区二区三区影院 | 亚洲国产视频一区| 精品亚洲国内自在自线福利| av在线综合网| 91麻豆精品国产无毒不卡在线观看| 2020国产精品| 亚洲小说欧美激情另类| 韩国成人福利片在线播放| 91视频免费看| 日韩免费观看高清完整版 | 一区在线观看免费| 蜜桃视频一区二区| 91丨porny丨首页| 日韩欧美亚洲另类制服综合在线| 国产视频一区在线观看| 香蕉影视欧美成人| 不卡av在线免费观看| 欧美大白屁股肥臀xxxxxx| 亚洲色图视频网| 久久99热这里只有精品| 在线观看欧美黄色| 日本一区二区三区国色天香 | 一区二区三区欧美久久| 久久91精品久久久久久秒播| 欧美亚洲综合网| 日本一区二区综合亚洲| 开心九九激情九九欧美日韩精美视频电影 | 欧美图片一区二区三区| 亚洲国产成人一区二区三区| 免费观看在线综合色| 欧美综合色免费| 中文字幕中文字幕一区二区| 国产制服丝袜一区| 在线播放中文一区| 亚洲人xxxx| 蜜臀精品一区二区三区在线观看| 色综合久久天天| 国产精品麻豆欧美日韩ww| 国模一区二区三区白浆| 欧美丰满少妇xxxbbb| 亚洲一区二区五区| 一本在线高清不卡dvd| 中文字幕+乱码+中文字幕一区| 韩国v欧美v日本v亚洲v| 欧美一区二区美女| 日韩高清一区在线| 这里只有精品99re| 亚洲va欧美va国产va天堂影院| 91网站在线播放| 中文字幕日韩一区二区| 国产乱码一区二区三区| 精品国产网站在线观看| 美国毛片一区二区三区| 911精品国产一区二区在线| 午夜欧美电影在线观看| 欧美日韩综合在线免费观看| 亚洲蜜桃精久久久久久久| 成人a免费在线看| 国产精品久久久久久久裸模| av福利精品导航| 国产精品无码永久免费888| 国产一区二区三区视频在线播放| 99免费精品视频| 欧美激情综合在线| av爱爱亚洲一区| 亚洲最色的网站| 欧美日韩成人在线一区| 免费欧美日韩国产三级电影| 欧美草草影院在线视频| 国产夫妻精品视频| 亚洲国产精品黑人久久久| 91视频在线观看| 亚洲成a人v欧美综合天堂下载| 欧美日韩另类一区| 日本成人在线一区| 久久综合九色综合97婷婷| 成人a级免费电影| 一区二区三区国产豹纹内裤在线| 欧美性xxxxxxxx| 麻豆成人久久精品二区三区红 | 欧美性极品少妇| 日本欧美在线观看| 精品日韩av一区二区| 成人小视频在线| 亚洲一区在线观看视频| 欧美肥妇bbw| 国产成人一区二区精品非洲| 一区二区三区在线免费观看| 宅男在线国产精品| 成人午夜短视频| 亚洲福利一区二区|