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

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

?? appenderskeleton.java

?? log4j的源碼
?? JAVA
字號:
/* * Copyright 1999-2005 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.apache.log4j.Layout;import org.apache.log4j.spi.Filter;import org.apache.log4j.spi.ErrorHandler;import org.apache.log4j.spi.OptionHandler;import org.apache.log4j.spi.LoggingEvent;import org.apache.log4j.helpers.OnlyOnceErrorHandler;import org.apache.log4j.helpers.LogLog;/**  * Abstract superclass of the other appenders in the package. *   *  This class provides the code for common functionality, such as *  support for threshold filtering and support for general filters. * * @since 0.8.1 * @author Ceki G&uuml;lc&uuml;  * */public abstract class AppenderSkeleton implements Appender, OptionHandler {  /** The layout variable does not need to be set if the appender      implementation has its own layout. */  protected Layout layout;  /** Appenders are named. */  protected String name;  /**     There is no level threshold filtering by default.  */  protected Priority threshold;  /**       It is assumed and enforced that errorHandler is never null.  */  protected ErrorHandler errorHandler = new OnlyOnceErrorHandler();  /** The first filter in the filter chain. Set to <code>null</code>      initially. */  protected Filter headFilter;  /** The last filter in the filter chain. */  protected Filter tailFilter;  /**     Is this appender closed?    */  protected boolean closed = false;  /**     Derived appenders should override this method if option structure     requires it.  */  public  void activateOptions() {  }  /**     Add a filter to end of the filter list.     @since 0.9.0   */  public  void addFilter(Filter newFilter) {    if(headFilter == null) {      headFilter = tailFilter = newFilter;    } else {      tailFilter.next = newFilter;      tailFilter = newFilter;        }  }  /**     Subclasses of <code>AppenderSkeleton</code> should implement this     method to perform actual logging. See also {@link #doAppend     AppenderSkeleton.doAppend} method.     @since 0.9.0  */  abstract  protected  void append(LoggingEvent event);  /**     Clear the filters chain.          @since 0.9.0 */  public  void clearFilters() {    headFilter = tailFilter = null;  }  /**     Finalize this appender by calling the derived class'     <code>close</code> method.     @since 0.8.4 */  public  void finalize() {    // An appender might be closed then garbage collected. There is no    // point in closing twice.    if(this.closed)       return;    LogLog.debug("Finalizing appender named ["+name+"].");    close();  }  /**       Return the currently set {@link ErrorHandler} for this      Appender.        @since 0.9.0 */  public  ErrorHandler getErrorHandler() {    return this.errorHandler;  }  /**     Returns the head Filter.          @since 1.1  */  public  Filter getFilter() {    return headFilter;  }  /**       Return the first filter in the filter chain for this      Appender. The return value may be <code>null</code> if no is      filter is set.        */  public  final  Filter getFirstFilter() {    return headFilter;  }  /**     Returns the layout of this appender. The value may be null.  */  public  Layout getLayout() {    return layout;  }  /**     Returns the name of this FileAppender.   */  public  final  String getName() {    return this.name;  }  /**     Returns this appenders threshold level. See the {@link     #setThreshold} method for the meaning of this option.          @since 1.1 */  public  Priority getThreshold() {    return threshold;  }  /**     Check whether the message level is below the appender's     threshold. If there is no threshold set, then the return value is     always <code>true</code>.  */  public  boolean isAsSevereAsThreshold(Priority priority) {    return ((threshold == null) || priority.isGreaterOrEqual(threshold));  }  /**    * This method performs threshold checks and invokes filters before    * delegating actual logging to the subclasses specific {@link    * AppenderSkeleton#append} method.    * */  public  synchronized   void doAppend(LoggingEvent event) {    if(closed) {      LogLog.error("Attempted to append to closed appender named ["+name+"].");      return;    }        if(!isAsSevereAsThreshold(event.getLevel())) {      return;    }    Filter f = this.headFilter;        FILTER_LOOP:    while(f != null) {      switch(f.decide(event)) {      case Filter.DENY: return;      case Filter.ACCEPT: break FILTER_LOOP;      case Filter.NEUTRAL: f = f.next;      }    }        this.append(event);      }  /**       Set the {@link ErrorHandler} for this Appender.      @since 0.9.0  */  public  synchronized  void setErrorHandler(ErrorHandler eh) {    if(eh == null) {      // We do not throw exception here since the cause is probably a      // bad config file.      LogLog.warn("You have tried to set a null error-handler.");    } else {      this.errorHandler = eh;    }  }  /**     Set the layout for this appender. Note that some appenders have     their own (fixed) layouts or do not use one. For example, the     {@link org.apache.log4j.net.SocketAppender} ignores the layout set     here.   */  public  void setLayout(Layout layout) {    this.layout = layout;  }    /**     Set the name of this Appender.   */  public  void setName(String name) {    this.name = name;  }  /**     Set the threshold level. All log events with lower level     than the threshold level are ignored by the appender.          <p>In configuration files this option is specified by setting the     value of the <b>Threshold</b> option to a level     string, such as "DEBUG", "INFO" and so on.          @since 0.8.3 */  public  void setThreshold(Priority threshold) {    this.threshold = threshold;  }  }

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕欧美日本乱码一线二线| 国产精品69久久久久水密桃 | 欧美aⅴ一区二区三区视频| 99久久精品国产网站| 日韩伦理av电影| 91激情在线视频| 亚洲成a人v欧美综合天堂 | 一本色道久久综合亚洲aⅴ蜜桃| 专区另类欧美日韩| 欧美日韩久久一区| 丝袜美腿一区二区三区| 91麻豆精品国产91久久久使用方法| 日韩精品五月天| 2020日本不卡一区二区视频| 国产成人福利片| 亚洲在线视频网站| 精品国产一区二区三区不卡| 国产传媒一区在线| 一级特黄大欧美久久久| 欧美日韩电影在线播放| 精品一区二区在线免费观看| 国产精品萝li| 91麻豆精品久久久久蜜臀| 精品一区二区三区日韩| 国产精品三级av在线播放| 欧美性生活一区| 国产精品亚洲专一区二区三区| 国产一区二区三区免费在线观看 | 成人av小说网| 日本中文字幕一区二区视频| 国产午夜亚洲精品羞羞网站| 日本高清免费不卡视频| 国内偷窥港台综合视频在线播放| 亚洲视频网在线直播| 欧美一区二区免费视频| 成人av免费在线观看| 天堂资源在线中文精品| 久久女同精品一区二区| 欧美吞精做爰啪啪高潮| 国产黑丝在线一区二区三区| 亚洲电影在线免费观看| 国产欧美久久久精品影院| 欧美色图片你懂的| 不卡区在线中文字幕| 人人超碰91尤物精品国产| 中文字幕亚洲综合久久菠萝蜜| 日韩免费一区二区| 91国偷自产一区二区使用方法| 国产在线精品一区二区| 亚洲午夜成aⅴ人片| 中文字幕不卡在线播放| 精品国产一区二区三区av性色| 在线观看三级视频欧美| 成人性视频免费网站| 麻豆精品一区二区av白丝在线| 亚洲男同性恋视频| 国产嫩草影院久久久久| 欧美va亚洲va在线观看蝴蝶网| 日韩一区二区三区四区五区六区| av在线免费不卡| 国产一区二区三区黄视频| 手机精品视频在线观看| 99国产精品视频免费观看| 经典三级视频一区| 久色婷婷小香蕉久久| 亚洲成av人片一区二区梦乃| 亚洲日本韩国一区| 亚洲日本电影在线| 亚洲欧美日韩中文播放 | 日日夜夜精品视频免费| 一区二区三区美女| 亚洲黄一区二区三区| 亚洲美女在线一区| 亚洲黄色免费电影| 亚洲精品免费在线观看| 亚洲免费观看视频| 中文字幕一区二| 亚洲男人都懂的| 亚洲综合偷拍欧美一区色| 亚洲欧美日韩在线不卡| 亚洲综合小说图片| 日韩高清欧美激情| 美女一区二区视频| 国产在线国偷精品产拍免费yy| 国产一区二区在线看| 国产精品综合视频| 国产成人在线观看免费网站| 国产成人av电影免费在线观看| 国产精品99久久不卡二区| 成人av网站免费| 欧美性猛片aaaaaaa做受| 欧美亚洲一区二区在线| 欧美剧在线免费观看网站 | 亚洲日本va在线观看| 亚洲精品国产a久久久久久| 尤物av一区二区| 午夜视频在线观看一区| 日韩中文字幕91| 久久99国产精品麻豆| 成人综合婷婷国产精品久久 | 中文字幕一区二区不卡| 亚洲另类中文字| 日本aⅴ免费视频一区二区三区| 久久99久久精品| 99亚偷拍自图区亚洲| 欧美亚日韩国产aⅴ精品中极品| 欧美日本韩国一区| 久久色.com| 亚洲免费成人av| 久久国内精品视频| av不卡在线播放| 欧美久久一二三四区| 久久一夜天堂av一区二区三区| 18成人在线观看| 天天亚洲美女在线视频| 国产精品 日产精品 欧美精品| 91成人免费在线| 久久午夜老司机| 亚洲在线免费播放| 国产精品一区二区黑丝| 91女厕偷拍女厕偷拍高清| 91精品免费在线观看| 中日韩av电影| 日韩二区三区在线观看| 成人av网在线| 久久综合久色欧美综合狠狠| 综合在线观看色| 国产在线不卡视频| 欧美日韩www| 国产精品成人一区二区艾草| 亚欧色一区w666天堂| 丁香婷婷综合色啪| 日韩欧美激情四射| 亚洲综合图片区| 99视频在线精品| 久久精品亚洲乱码伦伦中文 | 欧美影视一区二区三区| 久久精品视频在线看| 午夜视频一区在线观看| proumb性欧美在线观看| 精品国内二区三区| 日韩电影在线观看一区| 一本色道久久综合精品竹菊| 久久精品男人天堂av| 奇米影视一区二区三区| 日本韩国欧美在线| 亚洲欧洲国产日本综合| 国产在线精品一区二区三区不卡 | 精品久久久久久亚洲综合网| 亚洲国产精品久久不卡毛片| 成人免费观看视频| 久久综合九色综合久久久精品综合 | 性感美女久久精品| 一本色道**综合亚洲精品蜜桃冫| 欧美高清在线视频| 国产美女主播视频一区| 欧美一区二区三区日韩| 午夜一区二区三区在线观看| 日本精品视频一区二区| 亚洲色欲色欲www在线观看| 国产成人自拍高清视频在线免费播放| 日韩精品一区二区在线| 奇米精品一区二区三区在线观看| 欧美日韩mp4| 日本va欧美va瓶| 91精品国产欧美日韩| 爽好多水快深点欧美视频| 欧美日韩综合不卡| 亚洲成人你懂的| 欧美日韩成人一区| 日韩va亚洲va欧美va久久| 91精品国产综合久久婷婷香蕉| 午夜精品久久久久| 日韩一区二区三区av| 美女尤物国产一区| 久久久精品日韩欧美| 国产精品538一区二区在线| 欧美国产97人人爽人人喊| 成人app在线观看| 亚洲精品午夜久久久| 欧美性猛交一区二区三区精品| 午夜国产不卡在线观看视频| 91精品国产91久久久久久一区二区| 奇米四色…亚洲| 久久久久97国产精华液好用吗| 成人免费看的视频| 亚洲精品成a人| 91超碰这里只有精品国产| 蜜桃一区二区三区四区| 26uuu色噜噜精品一区二区| 成人网男人的天堂| 夜夜嗨av一区二区三区| 欧美肥大bbwbbw高潮| 九九视频精品免费| 国产精品嫩草影院av蜜臀| 91国产丝袜在线播放| 蜜芽一区二区三区| 国产精品久久久久久亚洲毛片 | 国产精一区二区三区| 中文字幕在线不卡一区二区三区|