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

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

?? logfile.java

?? 一個利用Java語言實現的ftp程序
?? JAVA
字號:
/*
 * Copyright (C) The Apache Software Foundation. All rights reserved.
 *
 * This software is published under the terms of the Apache Software License
 * version 1.1, a copy of which has been included with this distribution in
 * the LICENSE file.
 */
package io;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.RandomAccessFile;
import java.io.Writer;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;


/**
 * Log class to write log data. It uses <code>RandomAccessFile</code>.
 * If the log file size exceeds the limit, a new log file will be created.
 *
 * @author <a href="mailto:rana_b@yahoo.com">Rana Bhattacharyya</a>
 */
public
class LogFile {
    
    /**
     * Line separator
     */
    private final static String LINE_SEP = System.getProperty("line.separator", "\n");
    
    
    /**
     * Date format to backup old files. 
     */
    private DateFormat LOG_FILE_DATE = new SimpleDateFormat("yyyy-MM-dd-hh-mm-ss");
    
    /**
     * Debug log level - lowest priority.
     */
    public static final int DEBUG  = 0;
    
    /**
     * Normal log level - print messages.
     */
    public static final int INFO   = 1;
    
    /**
     * Warning message
     */
    public static final int WARN   = 2;    
    
    /**
     * Eror log level - print errors.
     */
    public static final int ERROR  = 3;
    
    private static final String mstLogHeader[] = { 
        "DEB",
        "INF",
        "WAR",
        "ERR"
    };

    private DateFormat mDateFmt = null;
    private Writer mOfs         = null;
    private File mLogFile       = null;
    private int miLogLevel      = INFO;
    private long mlMaxSize      = -1;    // no size limit
    private long mlSize         = 0;     // current size
    private boolean mbAutoFlush = false; 

    /**
     * Constructor. 
     */
    public LogFile(File logFile) {

        if (logFile == null) {
            throw new NullPointerException("Log file is null.");
        }

        mDateFmt = new SimpleDateFormat("MM/dd HH:mm:ss");
        mLogFile = logFile;
        open();
    }

    /**
     * Set log date format
     */
    public void setDateFormat(DateFormat fmt)  {
        mDateFmt = fmt;
    }
    
    /**
     * Get the log date format.
     */
    public DateFormat getDateFormat() {
        return mDateFmt;
    }
    
    /**
     * Get auto flush
     */
    public boolean getAutoFlush() {
        return mbAutoFlush;
    }
    
    /**
     * Set auto flush
     */
    public void setAutoFlush(boolean flush) {
        mbAutoFlush = flush;
    }
    
    /**
     * Get log file.
     */
    public File getFile() {
        return mLogFile;
    }
     
    /**
     * Get max size.
     */
    public long getMaxSize() {
        return mlMaxSize;
    }
    
    /**
     * Set max file size.
     * Set <code>max</code> less than or equal
     * to zero to disable max size limitation.
     */
    public synchronized void setMaxSize(long max) {
        mlMaxSize = max;
    }

    /**
     * Get the current file size.
     */
    public long getCurrentSize() {
        return mlSize;
    }
    
    /**
     * Get current log level.
     */
    public int getLogLevel() {
        return miLogLevel;
    }
    
    /**
     * Set log level. If <code>level</code> is beypnd the
     * range, it uses <code>LOG_NORMAL</code> to wtite log data.
     */
    public synchronized void setLogLevel(int level) {
        miLogLevel = calculateLogLevel(level);
    }
    
    /**
     * Open log file.
     */
    private synchronized void open() {
        try {
            if (mLogFile != null) {
                mlSize = mLogFile.length();
                RandomAccessFile raf = new RandomAccessFile(mLogFile, "rw");
                raf.seek(raf.length());
                FileWriter fw = new FileWriter(raf.getFD()); 
                mOfs = new BufferedWriter(fw);
            }
        } catch (Exception ex) {
            ex.printStackTrace();
            mOfs = null;
        }
    }

    

    /**
     * Print log data.
     *
     * @param str - log message
     * @param level - log level of this message.
     */
    public synchronized void write(int level, String str) {

        level = calculateLogLevel(level);

        // write the string
        if (level >= miLogLevel) {
            String logStr = "[" + mDateFmt.format(new Date()) + " (" + mstLogHeader[level] +")] " + str + LINE_SEP;
            long strLen = logStr.length();
            
            if (mOfs != null) {

                // save file if needed
                if ( (mlMaxSize > 0) && ((mlSize + strLen) > mlMaxSize) ) {
                    save();
                }
                
                // now write it
                try {
                    mOfs.write(logStr);
                    if (mbAutoFlush) {
                        mOfs.flush();
                    }
                    mlSize += strLen;
                } catch (Exception ex) {
                    mOfs = null;
                    ex.printStackTrace();
                }
            } 
            else {
                System.out.print(logStr);
            }
        }
    }
    
    
    /**
     * Print debug log.
     * Here the log level is <code>DEBUG</code>.
     */
    public void debug(String str) {
        write(DEBUG ,str);
    }
    
    /**
     * Print info log.
     */
    public void info(String str) {
        write(INFO ,str);
    }
    
    /**
     * Print warning log.
     */
    public void warn(String str) {
        write(WARN ,str);
    }
    
    /**
     * Print info log.
     */
    public void error(String str) {
        write(ERROR ,str);
    }
    
    /**
     * Print debug log.
     * Here the log level is <code>DEBUG</code>.
     */
    public void debug(Throwable th) {
        write(DEBUG ,IoUtils.getStackTrace(th));
    }
    
    /**
     * Print info log.
     */
    public void info(Throwable th) {
        write(INFO ,IoUtils.getStackTrace(th));
    }
    
    /**
     * Print warning log.
     */
    public void warn(Throwable th) {
        write(WARN ,IoUtils.getStackTrace(th));
    }
    
    /**
     * Print info log.
     */
    public void error(Throwable th) {
        write(ERROR ,IoUtils.getStackTrace(th));
    }
    
    /**
     * Log exception
     */
    public synchronized void write(int level, Throwable th) {
        write(level, IoUtils.getStackTrace(th));
    }
    

    /**
     * Set the log file and open a new log file.
     * Returns the name of the saved log file.
     */
    private synchronized void save() {
        if (mLogFile == null) {
            return;
        }

        try {
            dispose();
            File sf = new File(mLogFile.getAbsolutePath() + '.' + LOG_FILE_DATE.format(new Date()));
            sf = IoUtils.getUniqueFile(sf);
            mLogFile.renameTo(sf);
            open();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }  
    

    /**
     * Calculate the log level
     */
    private static int calculateLogLevel(int level) {
        int logLevel = level;

        if (level > ERROR) {
            logLevel = ERROR;
        }    
        else if (level < DEBUG) {
            logLevel = DEBUG;
        } 
        return logLevel;
    }
    
    /**
     * Close the log file.
     */
    public synchronized void dispose() {
        if (mOfs != null){
            IoUtils.close(mOfs);
            mOfs = null;
        }
    }
    
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩美女视频一区二区| 91黄视频在线观看| 捆绑调教一区二区三区| 亚洲第一电影网| 日韩精品电影一区亚洲| 日一区二区三区| 日本中文字幕一区| 久草精品在线观看| 国产精品一区二区无线| 成人免费看视频| 色欧美片视频在线观看 | 亚洲精品在线一区二区| 欧美成人女星排行榜| 日韩精品中文字幕一区| 国产亚洲一区二区三区在线观看| 久久婷婷色综合| 亚洲国产成人午夜在线一区| 亚洲欧美偷拍卡通变态| 亚洲一级二级在线| 免费精品99久久国产综合精品| 极品销魂美女一区二区三区| 九九精品一区二区| 国产日韩高清在线| 亚洲色图另类专区| 高清日韩电视剧大全免费| 国产精品久久久一本精品| 风间由美一区二区三区在线观看 | 国产成人综合网| 99麻豆久久久国产精品免费优播| 日本电影欧美片| 日韩精品中文字幕在线一区| 国产精品成人午夜| 久久超碰97人人做人人爱| 国产老女人精品毛片久久| 色噜噜夜夜夜综合网| 欧美va在线播放| caoporn国产精品| 精品久久人人做人人爰| 欧美日韩成人综合| 久久精品视频在线免费观看| 日韩av一区二区三区四区| 国产精品一线二线三线| 91成人国产精品| 国产日产精品一区| 香蕉影视欧美成人| av在线这里只有精品| 精品美女一区二区三区| 亚洲国产中文字幕在线视频综合| 黑人巨大精品欧美一区| 欧美日韩国产电影| 国产精品色眯眯| 国产在线不卡一区| 91精品国产综合久久久久久| 亚洲视频在线一区| 国内外成人在线视频| 欧美高清激情brazzers| 一区二区三区国产| 成人禁用看黄a在线| 日韩美女一区二区三区四区| 亚洲自拍偷拍九九九| 91亚洲国产成人精品一区二区三| 久久先锋影音av鲁色资源| 日韩专区在线视频| 欧美日韩在线播放三区四区| 亚洲欧美激情插| 99久久精品99国产精品| 中文乱码免费一区二区| 国产一区二区三区四区五区入口 | 风间由美一区二区三区在线观看| 欧美一区二区三区男人的天堂| 一区二区三区欧美久久| 99久久久国产精品免费蜜臀| 一区二区三区不卡视频在线观看 | 韩国三级在线一区| 911精品国产一区二区在线| √…a在线天堂一区| 日韩精品最新网址| 蜜桃传媒麻豆第一区在线观看| 欧美日韩的一区二区| 亚洲午夜久久久久久久久电影院 | xfplay精品久久| 蜜桃免费网站一区二区三区| 日韩午夜三级在线| 蜜臀av性久久久久蜜臀aⅴ| 欧美成人艳星乳罩| 国产麻豆欧美日韩一区| 国产精品久久久久久久浪潮网站 | 精品精品国产高清a毛片牛牛| 人人超碰91尤物精品国产| 日韩午夜av一区| 精品一区二区三区在线播放| 久久久亚洲国产美女国产盗摄 | 91国在线观看| 日韩高清中文字幕一区| 精品成人免费观看| 成人av在线一区二区三区| 亚洲激情一二三区| 日韩美女一区二区三区四区| 国产一区二区三区蝌蚪| 国产精品盗摄一区二区三区| 欧美在线色视频| 毛片av一区二区三区| 日韩欧美国产一二三区| 天堂精品中文字幕在线| 另类调教123区| 日韩精品午夜视频| 久久人人爽人人爽| 一本久久综合亚洲鲁鲁五月天| 亚洲午夜免费电影| 久久久亚洲精品一区二区三区| 91丨porny丨在线| 国内精品嫩模私拍在线| 亚洲图片另类小说| 日韩欧美国产成人一区二区| 波多野结衣中文字幕一区| 日韩精品视频网站| 中文字幕一区二区三区不卡在线| 欧美日本视频在线| 99精品在线免费| 韩国精品免费视频| 亚洲国产中文字幕| 国产精品久久久久影院| 精品日产卡一卡二卡麻豆| 一本久道久久综合中文字幕| 久久 天天综合| 亚洲桃色在线一区| 日韩一区二区三区精品视频| 亚洲午夜久久久久久久久电影院| 欧美日韩在线播放| 99久久久免费精品国产一区二区| 亚洲欧美日韩国产手机在线 | 国产mv日韩mv欧美| 亚洲第一搞黄网站| 亚洲精品成人精品456| 久久综合中文字幕| 日韩欧美国产精品一区| 欧美美女一区二区| 欧美日韩综合在线免费观看| 99精品久久只有精品| 国产成人午夜高潮毛片| 精品综合久久久久久8888| 日韩成人一区二区| 亚洲成人动漫精品| 亚洲电影一级黄| 亚洲人成7777| 精品国产乱码久久| 精品成人佐山爱一区二区| 韩国在线一区二区| 国产成人在线视频网址| 精品一区二区三区在线观看国产| 热久久国产精品| 视频一区二区中文字幕| 亚洲成人av资源| 午夜精品视频在线观看| 五月天网站亚洲| 丝袜脚交一区二区| 日韩av网站免费在线| 蜜桃av一区二区三区| 日本不卡一二三| 国内欧美视频一区二区| 国产精品一品二品| 福利视频网站一区二区三区| 不卡一卡二卡三乱码免费网站| 99re在线视频这里只有精品| 色综合久久综合网欧美综合网| 色欧美乱欧美15图片| 欧美色大人视频| 亚洲福利视频一区二区| 日本va欧美va精品发布| 欧美一二三区精品| 国产成人自拍网| 97精品国产露脸对白| 在线视频欧美区| 91精品国产综合久久久蜜臀粉嫩| 日韩三级精品电影久久久 | 久久精品国产99| 国产中文字幕精品| thepron国产精品| 欧美裸体bbwbbwbbw| 26uuu国产电影一区二区| 中文字幕日本不卡| 亚洲丰满少妇videoshd| 国产一区二区三区香蕉 | 天堂成人国产精品一区| 九九视频精品免费| 色综合久久久久久久| 欧美一区二区三区在线观看| 久久久99久久| 亚洲高清视频的网址| 制服丝袜亚洲网站| 美女www一区二区| ●精品国产综合乱码久久久久| 午夜精品久久久久久久99水蜜桃| 精品一区二区免费| 99久久久久久99| 久久综合色天天久久综合图片| 亚洲黄色录像片| 国产电影一区在线| 3d动漫精品啪啪1区2区免费| 国产精品久久久一本精品|