<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    java.util.logging.Logger 類

     




    1、可以在main方法中書寫以下語句進行log。

            final Logger baseLogger = Logger.getLogger("LogTest");
            baseLogger.setLevel(Level.INFO);//this set the log level to info. that means you can only pring info message to log file.
            final Handler[] handlers = baseLogger.getHandlers();
            for (int i = 0; i < handlers.length; i++) {
                baseLogger.removeHandler(handlers[i]);
            }

            try {
                baseLogger.addHandler(new DefaultHandler()); //class "DefaultHandler" is the default handler for log records. It currently only logs to a file in the format offered by TextFormatter.
            } catch (FreeColException e) {
                e.printStackTrace();
            }


    2、可以在配置文件(${jdk}\jar\lib下面找到logging.properties文件)里面改日志記錄的級別。

    3、定義"DefaultHandler" 類,用于處理日志。

    public final class DefaultHandler extends Handler {

        private static final String fileName = new String("test.log");

        private FileWriter fileWriter;

        /**
        * The constructor to use.
        * @throws Exception In case the log file could not be created/written to.
        */
        public DefaultHandler() throws Exception {
            File file = new File(fileName);

            if (file.exists()) {
                if (file.isDirectory()) {
                    throw new Exception("Log file \"" + fileName + "\" could not be created.");
                } else if (file.isFile()) {
                    file.delete();
                }
            }

            try {
                file.createNewFile();
            } catch (IOException e) {
                throw new Exception("Log file \"" + fileName + "\" could not be created.");
            }

            if (!file.canWrite()) {
                throw new Exception("Can not write in log file \"" + fileName + "\".");
            }

            try {
                fileWriter = new FileWriter(file);
            } catch (IOException e) {
                throw new Exception("Can not write in log file \"" + fileName + "\".");
            }

            // We  use TextFormatter that we build latter.
            setFormatter(new TextFormatter());
           
            try {
                String str = "version: 1.0\n" 
                            + "Java vendor: " + System.getProperty("java.vendor") + "\n"
                            + "Java version: " + System.getProperty("java.version") + "\n"
                            + "Java WM name: " + System.getProperty("java.vm.name") + "\n"
                            + "Java WM vendor: " + System.getProperty("java.vm.vendor") + "\n"
                            + "Java WM version: " + System.getProperty("java.vm.version") + "\n\n"
                            + "OS name: " + System.getProperty("os.name") + "\n"
                            + "OS architecture: " + System.getProperty("os.arch") + "\n"
                            + "OS version: " + System.getProperty("os.version") + "\n\n";
                fileWriter.write(str, 0, str.length());
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

         /**
        * Closes this handler so that it will stop handling log records.
        */
        public void close() {
            try {
                fileWriter.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }


        /**
        * Flushes the data that this handler has logged.
        */
        public void flush() {
            try {
                fileWriter.flush();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }


        /**
        * Publishes the given LogRecord by writing its data to a file using
        * a TextFormatter.
        *
        * @param record The log record to publish.
        */
        public void publish(LogRecord record) {
            if (record.getLevel().intValue() < getLevel().intValue()) {
                return;
            }

            String str = getFormatter().format(record);
            try {
                fileWriter.write(str, 0, str.length());
            } catch (IOException e) {
                e.printStackTrace();
            }
            flush();
        }
    }
       
    4、定義自己的Formatter格式。

    /**
    * Formats a log record's data into human-readable text.
    */
    final class TextFormatter extends Formatter {

        /**
        * The constructor to use.
        */
        public TextFormatter() {
        }

        /**
        * Formats the given log record's data into human-readable text.
        *
        * @param record The log record whose data needs to be formatted.
        * @return The log record's data as a string.
        */
        public String format(LogRecord record) {
            String level;
            if (record.getLevel() == Level.INFO) {
                level = "INFO";
            } else if (record.getLevel() == Level.ALL) {
                level = "ALL";
            } else if (record.getLevel() == Level.SEVERE) {
                level = "SEVERE";
            } else if (record.getLevel() == Level.WARNING) {
                level = "WARNING";
            } else {
                level = "UNKNOWN";
            }

            //you can build your own result format

            String result = record.getSourceClassName() + ' ' + record.getSourceMethodName();
            result += "\n\t" + level + ": " + record.getMessage().replaceAll("\n", "\n\t");
            result += "\n\t" + new Date(record.getMillis()).toString();
            result += "\n\tThread ID: " + record.getThreadID() + '\n';

            return result;
        }
    }

    5、實際應用中的使用.

    public class Client {
        private static final Logger logger = Logger.getLogger(Client.class.getName());

        private void createDirs() {
            String dir = System.getProperty("user.home");
            String fileSeparator = System.getProperty("file.separator");

            if (!dir.endsWith(fileSeparator)) {
                dir += fileSeparator;
            }
            dir += "test";

            File file = new File(dir);
            if (file.exists() && file.isFile()) {
                logger.warning("Could not create .freecol under ~ because there already exists a regular file with the same name.");
                return;
            } else if (!file.exists()) {
                file.mkdir();
               logger.info("Could not create .freecol under ~ because there already exists a regular file with the same name.");
             }
         }
    }

    posted on 2007-05-22 16:06 leoli 閱讀(760) 評論(0)  編輯  收藏 所屬分類: java

    導航

    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    統計

    常用鏈接

    留言簿(6)

    隨筆分類

    隨筆檔案(17)

    文章分類(86)

    收藏夾(3)

    flex blog

    good site

    java blog

    my friend

    tools

    抓蝦

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲精品亚洲人成在线| 亚洲高清在线mv| 美女黄频免费网站| 免费无码又爽又高潮视频| 性xxxx黑人与亚洲| 久久不见久久见免费影院| 亚洲一区二区三区免费在线观看 | 激情小说亚洲图片| 精品少妇人妻AV免费久久洗澡| 国产AV旡码专区亚洲AV苍井空| 岛国大片免费在线观看| 中文字幕亚洲综合久久综合| 永久免费毛片手机版在线看| MM1313亚洲国产精品| 久久亚洲精品无码观看不卡| 国产猛男猛女超爽免费视频| 亚洲黄色网站视频| 麻豆最新国产剧情AV原创免费| 亚洲熟伦熟女专区hd高清| 免费a级毛片无码av| 国产国产人免费人成成免视频| 亚洲情综合五月天| 8090在线观看免费观看| 在线观看亚洲AV日韩AV| 亚洲AV伊人久久青青草原| 免费国产99久久久香蕉| 亚洲国产人成在线观看| 国产一区二区三区在线免费 | 中国国产高清免费av片| 久久亚洲美女精品国产精品| 西西大胆无码视频免费| 曰批免费视频播放免费| 亚洲伊人tv综合网色| 免费黄色毛片视频| 中文在线观看免费网站| 狠狠色伊人亚洲综合网站色| 亚洲Av无码国产情品久久| 无码专区AAAAAA免费视频| 亚洲a无码综合a国产av中文| 亚洲av中文无码乱人伦在线咪咕| 在线观看视频免费完整版|