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

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

?? jdk13lumberjacklogger.java

?? Jakarta小組開發(fā)的可集成在各種系統(tǒng)中的共用登入管理程序。
?? 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.io.Serializable;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.logging.LogRecord;
import java.util.StringTokenizer;
import java.io.PrintWriter;
import java.io.StringWriter;

import org.apache.commons.logging.Log;


/**
 * <p>Implementation of the <code>org.apache.commons.logging.Log</code>
 * interface that wraps the standard JDK logging mechanisms that are
 * available in SourceForge's Lumberjack for JDKs prior to 1.4.</p>
 *
 * @author <a href="mailto:sanders@apache.org">Scott Sanders</a>
 * @author <a href="mailto:bloritsch@apache.org">Berin Loritsch</a>
 * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
 * @author <a href="mailto:vince256@comcast.net">Vince Eagen</a>
 * @version $Revision: 1.6 $ $Date: 2004/06/06 21:13:43 $
 */

public class Jdk13LumberjackLogger implements Log, Serializable {


    // ----------------------------------------------------- Instance Variables


    /**
     * The underlying Logger implementation we are using.
     */
    protected transient Logger logger = null;
    protected String name = null;
    private String sourceClassName = "unknown";
    private String sourceMethodName = "unknown";
    private boolean classAndMethodFound = false;


    // ----------------------------------------------------------- Constructors


    /**
     * Construct a named instance of this Logger.
     *
     * @param name Name of the logger to be constructed
     */
    public Jdk13LumberjackLogger(String name) {

        this.name = name;
        logger = getLogger();

    }


    // --------------------------------------------------------- Public Methods


    private void log( Level level, String msg, Throwable ex ) {
        if( getLogger().isLoggable(level) ) {
            LogRecord record = new LogRecord(level, msg);
            if( !classAndMethodFound ) {
                getClassAndMethod();
            }
            record.setSourceClassName(sourceClassName);
            record.setSourceMethodName(sourceMethodName);
            if( ex != null ) {
                record.setThrown(ex);
            }
            getLogger().log(record);
        }
    }

    /**
     * <p>Gets the class and method by looking at the stack trace for the
     * first entry that is not this class.</p>
     */
    private void getClassAndMethod() {
        try {
            Throwable throwable = new Throwable();
            throwable.fillInStackTrace();
            StringWriter stringWriter = new StringWriter();
            PrintWriter printWriter = new PrintWriter( stringWriter );
            throwable.printStackTrace( printWriter );
            String traceString = stringWriter.getBuffer().toString();
            StringTokenizer tokenizer =
                new StringTokenizer( traceString, "\n" );
            tokenizer.nextToken();
            String line = tokenizer.nextToken();
            while ( line.indexOf( this.getClass().getName() )  == -1 ) {
                line = tokenizer.nextToken();
            }
            while ( line.indexOf( this.getClass().getName() ) >= 0 ) {
                line = tokenizer.nextToken();
            }
            int start = line.indexOf( "at " ) + 3;
            int end = line.indexOf( '(' );
            String temp = line.substring( start, end );
            int lastPeriod = temp.lastIndexOf( '.' );
            sourceClassName = temp.substring( 0, lastPeriod );
            sourceMethodName = temp.substring( lastPeriod + 1 );
        } catch ( Exception ex ) {
            // ignore - leave class and methodname unknown
        }
        classAndMethodFound = true;
    }

    /**
     * Log a message with debug log level.
     */
    public void debug(Object message) {
        log(Level.FINE, String.valueOf(message), null);
    }


    /**
     * Log a message and exception with debug log level.
     */
    public void debug(Object message, Throwable exception) {
        log(Level.FINE, String.valueOf(message), exception);
    }


    /**
     * Log a message with error log level.
     */
    public void error(Object message) {
        log(Level.SEVERE, String.valueOf(message), null);
    }


    /**
     * Log a message and exception with error log level.
     */
    public void error(Object message, Throwable exception) {
        log(Level.SEVERE, String.valueOf(message), exception);
    }


    /**
     * Log a message with fatal log level.
     */
    public void fatal(Object message) {
        log(Level.SEVERE, String.valueOf(message), null);
    }


    /**
     * Log a message and exception with fatal log level.
     */
    public void fatal(Object message, Throwable exception) {
        log(Level.SEVERE, String.valueOf(message), exception);
    }


    /**
     * Return the native Logger instance we are using.
     */
    public Logger getLogger() {
        if (logger == null) {
            logger = Logger.getLogger(name);
        }
        return (logger);
    }


    /**
     * Log a message with info log level.
     */
    public void info(Object message) {
        log(Level.INFO, String.valueOf(message), null);
    }


    /**
     * Log a message and exception with info log level.
     */
    public void info(Object message, Throwable exception) {
        log(Level.INFO, String.valueOf(message), exception);
    }


    /**
     * Is debug logging currently enabled?
     */
    public boolean isDebugEnabled() {
        return (getLogger().isLoggable(Level.FINE));
    }


    /**
     * Is error logging currently enabled?
     */
    public boolean isErrorEnabled() {
        return (getLogger().isLoggable(Level.SEVERE));
    }


    /**
     * Is fatal logging currently enabled?
     */
    public boolean isFatalEnabled() {
        return (getLogger().isLoggable(Level.SEVERE));
    }


    /**
     * Is info logging currently enabled?
     */
    public boolean isInfoEnabled() {
        return (getLogger().isLoggable(Level.INFO));
    }


    /**
     * Is trace logging currently enabled?
     */
    public boolean isTraceEnabled() {
        return (getLogger().isLoggable(Level.FINEST));
    }


    /**
     * Is warn logging currently enabled?
     */
    public boolean isWarnEnabled() {
        return (getLogger().isLoggable(Level.WARNING));
    }


    /**
     * Log a message with trace log level.
     */
    public void trace(Object message) {
        log(Level.FINEST, String.valueOf(message), null);
    }


    /**
     * Log a message and exception with trace log level.
     */
    public void trace(Object message, Throwable exception) {
        log(Level.FINEST, String.valueOf(message), exception);
    }


    /**
     * Log a message with warn log level.
     */
    public void warn(Object message) {
        log(Level.WARNING, String.valueOf(message), null);
    }


    /**
     * Log a message and exception with warn log level.
     */
    public void warn(Object message, Throwable exception) {
        log(Level.WARNING, String.valueOf(message), exception);
    }


}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久综合成人精品亚洲另类欧美 | 精品成a人在线观看| 久久美女高清视频| 亚洲v日本v欧美v久久精品| 国产一区视频在线看| 在线亚洲免费视频| 久久精品视频网| 欧美aa在线视频| 在线一区二区三区四区五区| 日本一区二区三区dvd视频在线| 亚洲成人精品一区二区| 成人免费观看视频| 精品少妇一区二区三区| 亚洲电影视频在线| 91麻豆免费在线观看| 久久久综合网站| 蜜桃久久久久久| 欧美日韩成人一区| 亚洲综合色自拍一区| 91理论电影在线观看| 欧美国产一区视频在线观看| 捆绑调教一区二区三区| 欧美日韩国产免费一区二区| 亚洲男人都懂的| 99久久精品国产精品久久| 国产日韩欧美亚洲| 国产成人在线看| 欧美国产日韩a欧美在线观看 | 欧美一级高清片在线观看| 亚洲一区二区综合| 欧美在线啊v一区| 亚洲欧美日韩在线不卡| 色噜噜狠狠成人中文综合 | 93久久精品日日躁夜夜躁欧美| 久久久91精品国产一区二区三区| 乱一区二区av| 亚洲欧美激情在线| 91香蕉视频污在线| 亚洲精品亚洲人成人网| 色一情一伦一子一伦一区| 亚洲欧美欧美一区二区三区| 91福利视频久久久久| 亚洲国产中文字幕| 欧美一区二区三区播放老司机| 免费看精品久久片| 久久久三级国产网站| 国产福利不卡视频| 一区二区中文视频| 欧美性猛交一区二区三区精品| 五月婷婷综合网| 欧美电视剧在线观看完整版| 国产精选一区二区三区| 中文字幕一区二区三区四区不卡| 色综合久久久网| 日韩国产欧美在线视频| 精品乱人伦小说| 成人激情动漫在线观看| 亚洲一区二区免费视频| 欧美一区二区免费视频| 韩国一区二区在线观看| 亚洲欧美怡红院| 制服丝袜av成人在线看| 国产精品亚洲午夜一区二区三区| 欧美国产精品劲爆| 欧美日韩亚洲综合一区| 精品一区二区成人精品| ...xxx性欧美| 91精品国产aⅴ一区二区| 国产盗摄一区二区| 亚洲国产成人porn| 国产喂奶挤奶一区二区三区| 日本精品裸体写真集在线观看 | 欧美精品久久久久久久多人混战| 久久国产成人午夜av影院| 亚洲欧洲日韩在线| 日韩一级片网站| 高清国产午夜精品久久久久久| 亚洲国产日韩精品| 中国av一区二区三区| 6080日韩午夜伦伦午夜伦| 波多野洁衣一区| 激情伊人五月天久久综合| 一区二区三区四区在线| 国产日本亚洲高清| 91精品国产综合久久久久久久| 99久免费精品视频在线观看 | 精品嫩草影院久久| 色先锋资源久久综合| 精品一区二区三区在线观看国产| 一区二区三区不卡在线观看| 国产亚洲一二三区| 三级亚洲高清视频| 色哟哟一区二区| 国产成人啪午夜精品网站男同| 亚洲综合999| 国产精品久99| 精品人在线二区三区| 欧美精品乱码久久久久久按摩| 国产欧美视频一区二区| 欧美群妇大交群的观看方式| 成人aa视频在线观看| 国产在线不卡视频| 久久精品噜噜噜成人88aⅴ| 亚洲gay无套男同| 亚洲精品水蜜桃| 日韩理论片中文av| 亚洲色图19p| 国产精品丝袜91| 国产欧美日本一区视频| 精品国产一区二区三区忘忧草| 91精品国产综合久久精品| 欧美日韩一区在线| 欧美亚洲高清一区二区三区不卡| 99久久国产综合精品女不卡| 成人免费观看男女羞羞视频| 成人性生交大片免费看中文网站| 国产精品一区二区三区99| 久久99精品久久久久久国产越南| 日本不卡123| 麻豆精品一区二区三区| 欧美aa在线视频| 国内精品久久久久影院薰衣草 | 色噜噜久久综合| 91美女在线看| 欧美三级视频在线观看 | 国产风韵犹存在线视精品| 精品一区二区三区欧美| 国产在线一区观看| 福利一区二区在线| 粗大黑人巨茎大战欧美成人| 91色在线porny| 欧美午夜精品免费| 欧美一区二区日韩一区二区| 日韩欧美卡一卡二| 亚洲精品一区二区三区影院 | 国产精品免费aⅴ片在线观看| 国产精品妹子av| 一区二区三区四区高清精品免费观看| 亚洲高清视频的网址| 麻豆精品视频在线观看| 国产成人免费视频一区| 91亚洲国产成人精品一区二区三| 精品视频1区2区3区| 精品国产百合女同互慰| 国产精品嫩草影院av蜜臀| 亚洲综合无码一区二区| 精品一区二区免费视频| 成人美女视频在线看| 欧美视频在线一区二区三区| 精品久久五月天| 一区二区在线观看视频在线观看| 免费观看在线综合| 99这里只有精品| 精品剧情在线观看| 亚洲特黄一级片| 国内一区二区在线| 欧美自拍偷拍一区| 久久久91精品国产一区二区三区| 一区二区久久久久久| 国产在线播放一区| 欧美日韩精品系列| 国产精品乱人伦| 蜜桃精品视频在线| 91福利视频久久久久| 国产午夜精品久久久久久免费视| 一区二区三区四区国产精品| 国产高清精品在线| 欧美一区二区视频在线观看2020| 中文字幕第一区二区| 日日摸夜夜添夜夜添精品视频| 成人免费黄色大片| 久久综合一区二区| 日韩成人一区二区三区在线观看| 懂色一区二区三区免费观看| 欧美一区二区免费| 亚洲第一成人在线| 日本道色综合久久| 亚洲日本韩国一区| 91麻豆精品国产91久久久久久久久| 欧美激情艳妇裸体舞| 激情欧美一区二区| 日韩亚洲欧美成人一区| 亚洲午夜在线观看视频在线| 99久久婷婷国产综合精品| 26uuu国产日韩综合| 日本aⅴ精品一区二区三区 | 成人久久视频在线观看| 欧美成人性战久久| 蜜桃av噜噜一区二区三区小说| 欧美在线免费视屏| 一区二区三区高清在线| 91小宝寻花一区二区三区| 国产精品色婷婷久久58| 成人国产精品免费| 欧美激情一区在线观看| 从欧美一区二区三区| 国产精品人人做人人爽人人添| 国产精品一区免费在线观看| 2021国产精品久久精品 | 日韩中文欧美在线|