标签:
使用日志的起点是Logger类,LOgger实例的创建有许多要处理的要素,LOgger类的构造函数标识为protected,不是java.util.logging同包的类不能直接以new创建,要取得Logger实例,必须使用Logger的静态方法getlogger()。
调用getLogger()是,必须指定Logger实例所属名称空间,名称空间以“.”作为层级区分,名称空间层级相同的Logger其父Logger组态相同。
通常在那个类中取得的Logger,名称空间就会命名为那个类全名。经常的,也会通过以一下方式取得Logger。
import java.util.logging.*;
public class LoggerDemo {
public static void main(String[] args) {
Logger logger = Logger.getLogger(LoggerDemo.class.getName());
logger.log(Level.WARNING, "WARNING 訊息");
logger.log(Level.INFO, "INFO 訊息");
logger.log(Level.CONFIG, "CONFIG 訊息");
logger.log(Level.FINE, "FINE 訊息");
}
}
运行结果如下:
如果客户端调用了Logger实例的log()方法,首先会依据Level过滤信息,再看看Logger有无设定Filter接口的实例,如果有且其isLoggable()返回true,才会调用handle实例的publish()方法,handle也可设定自己的Filter实例,如果有且其isLoggable()返回true,就调用Formatter实例的format()方法格式化信息,最后在调用输出对象将格式化的信息输出。
Handle与Formatter
Handle分为MemoryHandle和StreamHandle,其中StreamHandle又分为ConsoleHandle、FileHandle和SockeHandle。
Logger可以使用addHandle()新增Handle实例,使用removeHandle()移除Handle。例如一下实例:
import java.io.IOException;
import java.util.logging.*;
public class HandlerDemo {
public static void main(String[] args) throws IOException {
Logger logger = Logger.getLogger(HandlerDemo.class.getName());
logger.setLevel(Level.CONFIG);
FileHandler handler = new FileHandler("%h/config.log");
handler.setLevel(Level.CONFIG);
logger.addHandler(handler);
logger.config("Logger 組態完成");
}
}
在建立FileHandle指定模式字符串时,可以使用"%h"来表示用户的根目录,还可以用"&t"来取得系统暂存目录,或者使用"%g"自动为文档编号。
FileHandle默认的Formatter是XMLFormatter,前面看过的ConsoleHandle默认使用SimpleFormatter,这两类是Formatter的子类,可以通过Handle的setFormatter()方法设定Formatter。
应用程序根据不同的地区用户,呈现不同的语言、日期格式等称为本地化,如果应用程序设计是,可以爱不修改应用程序情况下,根据不同用户直接采用不同语言日期格式等,这样的设计考虑成为国际化,简称i18n。
国际化的三个重要概念是地区信息、资源包与基础名称。地区信息的对应类Locale,ResourceBundle对象是JVM中资源包的代表对象。代表同一组信息但不同地区的各个资源包会共享相同的基础名称,使用ResourceHandle的getBundle()时指定的名称就是在指定基础名称。
使用ReasourceBUndle是,如何根据基础名称取得对应的信息文档:
可以使用Date来取得完整的日期时间,可单纯使用toString()取得日期文字描述,或使用DateFormat格式化日期。若查看Date的API文件,会发现许多方法都不再建议使用,建议使用Calendar的相关方法取代。
| | 代码行数(新增/累积)| 博客量(新增/累积)|学习时间(新增/累积)|重要成长| | -------- | :----------------:|:----------------:|:---------------: |:-----:| | 目标 | 5000行 | 30篇 | 400小时 | | | 第一周 | 200/200 | 2/2 | 20/20 | | | 第二周 | 300/500 | 2/4 | 18/38 | | | 第三周 | 500/1000 | 3/7 | 22/60 | | | 第四周 | 300/1300 | 2/9 | 30/90 | |
标签:
原文地址:http://www.cnblogs.com/20145336yang/p/5428692.html