<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

    抓蝦

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 日本免费网址大全在线观看| 深夜免费在线视频| 精品国产污污免费网站| 亚洲人成人一区二区三区| 成人在线免费视频| 亚洲精品国产va在线观看蜜芽| 美女视频黄a视频全免费网站一区| 免费无码又爽又刺激高潮的视频| 久久久久久亚洲精品影院| 中文字幕无码成人免费视频| 亚洲专区一路线二| 夜夜嘿视频免费看| 国产亚洲人成在线影院| 浮力影院亚洲国产第一页| 人妻免费一区二区三区最新| 亚洲国产精品不卡在线电影| 24小时日本电影免费看| 亚洲一区二区三区播放在线| 国内免费高清在线观看| 亚洲AV成人无码网站| 亚洲精品视频免费| 久久免费线看线看| 国产成人亚洲综合网站不卡| 小小影视日本动漫观看免费| 免费精品视频在线| 亚洲av无码国产精品夜色午夜 | 边摸边脱吃奶边高潮视频免费| 亚洲精品国精品久久99热| 中文字幕无码毛片免费看| 337p日本欧洲亚洲大胆色噜噜| 毛色毛片免费观看| 久久高潮一级毛片免费| 亚洲精品影院久久久久久| 国产精品酒店视频免费看| 免费无码av片在线观看| 亚洲视频在线观看视频| 国产成人在线观看免费网站 | 亚洲天堂在线播放| 午夜国产羞羞视频免费网站| a级毛片免费播放| 亚洲国产成人久久精品大牛影视|