java.util.logging 例子

Logging

java.util.logging

import java.util.logging.*;
public class Main {    public static void main(String[] args) {
        Logger log = Logger.getLogger("test"); 
        log.setLevel(Level.INFO); 
        log.info("--------------------------");
        log.info("Test");
        log.info("--------------------------");

    }
}

 XML

import java.io.IOException;
import java.util.logging.*;
public class Main {    public static void main(String[] args) {        try {
            Logger log = Logger.getLogger("test");
            FileHandler fileHandler = new FileHandler("test.%g.log");
            fileHandler.setLevel(Level.INFO);
            log.addHandler(fileHandler);

            log.setLevel(Level.INFO);
            log.info("One");
            log.info("Two");
            log.info("Three");

        } catch (SecurityException e) {            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
}

输出结果

<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE log SYSTEM "logger.dtd"><log><record>
  <date>2016-04-19T15:57:19</date>
  <millis>1461052639360</millis>
  <sequence>0</sequence>
  <logger>test</logger>
  <level>INFO</level>
  <class>Main</class>
  <method>main</method>
  <thread>1</thread>
  <message>One</message></record><record>
  <date>2016-04-19T15:57:19</date>
  <millis>1461052639394</millis>
  <sequence>1</sequence>
  <logger>test</logger>
  <level>INFO</level>
  <class>Main</class>
  <method>main</method>
  <thread>1</thread>
  <message>Two</message></record><record>
  <date>2016-04-19T15:57:19</date>
  <millis>1461052639395</millis>
  <sequence>2</sequence>
  <logger>test</logger>
  <level>INFO</level>
  <class>Main</class>
  <method>main</method>
  <thread>1</thread>
  <message>Three</message></record></log>

Formatter

import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.logging.*;
class LogFormatter extends Formatter {    @Override
    public String format(LogRecord record) {        return String.format("%s %s\t%s\n", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS").format(new Date()) , record.getLevel(), record.getMessage());
    }
}public class Main {    public static void main(String[] args) {        try {
            Logger log = Logger.getLogger("test");
            FileHandler fileHandler = new FileHandler("test.%g.log");
            fileHandler.setLevel(Level.INFO);
            log.addHandler(fileHandler);
            fileHandler.setFormatter(new LogFormatter());
            log.setLevel(Level.INFO);
            log.info("One");
            log.info("Two");
            log.info("Three");

        } catch (SecurityException e) {            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
}

输出结果

2016-04-19 16:05:53.324 INFO    One
2016-04-19 16:05:53.352 INFO    Two
2016-04-19 16:05:53.353 INFO    Three

原文发布于微信公众号 - Netkiller(netkiller-ebook)

原文发表时间:2016-04-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏ml

uva-----11292 The Dragon of Loowater

Problem C: The Dragon of Loowater Once upon a time, in the Kingdom of Loowater, ...

3155
来自专栏用户2442861的专栏

Good logging practice in Python

https://fangpenlin.com/posts/2012/08/26/good-logging-practice-in-python/

1561
来自专栏算法修养

POJ-1887 Testing the CATCHER(dp,最长下降子序列)

Testing the CATCHER Time Limit: 1000MS Memory Limit: 30000K Total Submi...

3665
来自专栏Golang语言社区

Go 语言结构体

Go 语言中数组可以存储同一类型的数据,但在结构体中我们可以为不同项定义不同的数据类型。 结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。 结构体表...

2917
来自专栏算法修养

ZOJ 3607 Lazier Salesgirl (枚举)

Lazier Salesgirl Time Limit: 2 Seconds Memory Limit: 65536 KB Kochiya S...

3697
来自专栏一个会写诗的程序员的博客

来自国外Kotin 布道师的 完整版【Kotlin 简明教程】1Kotlin 开发者社区

A programming language is usually designed with a specific purpose in mind. This...

2242
来自专栏Golang语言社区

Go 语言结构体

Go 语言中数组可以存储同一类型的数据,但在结构体中我们可以为不同项定义不同的数据类型。 结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。 结构体表...

35012
来自专栏扎心了老铁

Hadoop通过HCatalog编写Mapreduce任务访问hive库中schema数据

1、dirver package com.kangaroo.hadoop.drive; import java.util.Map; import java.u...

7275
来自专栏冷冷

SpringMVC 之 ModelAndView和ModelAttribute的使用

ModelAndView解释 : This class merely holds both to make it possible for a controll...

2605
来自专栏算法修养

POJ-1959 Darts

Darts Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 1286 ...

36810

扫码关注云+社区

领取腾讯云代金券