| Logger默认的Handler是ConsolerHandler,而ConsolerHandler的讯息等级是INFO,这可以在logging.properties下看到: handlers= java.util.logging.ConsoleHandler
java.util.logging.ConsoleHandler.level = INFO J2SE 提供了五个默认的 Handler:
以 System.err 输出记录。
将讯息输出至文件
以 OutputStream 输出记录。
将讯息透过Socket传送至远端主机。
将讯息暂存在内存中。
下面这个例子示范如何使用FileHandler将讯息输出至文件中:
package onlyfun.caterpillar; 执行的结果会在主控台显示讯息,并将结果输出至文件中,在指定输出的文件名称时,我们可以使用%h来表示使用者的home目 录,您还可以使用%t取得系统的暂存目录,或者是加入%g,例如可以设定为"%h/myLogger%g.log"表示自动为文件名称编号,文件输出的内 容如下: <?xml version="1.0" encoding="x-windows-950"
standalone="no"?> <!DOCTYPE log SYSTEM "logger.dtd"> <log> <record> <date>2005-02-03T19:49:39</date> <millis>1107431379203</millis> <sequence>0</sequence> <logger>handlerDemo</logger> <level>INFO</level> <class>onlyfun.caterpillar.HandlerDemo</class> <method>main</method> <thread>10</thread> <message>测试讯息</message> </record> </log> Handler负责输出讯息的目的地,而输出的格式则是由Formatter控制,默认上FileHandler的输出格式是XML格式,输出格式是由Formatter来控制,例如FileHandler的默认格式是XMLFormatter,而ConsolerHandler的默认格式是SimpleFormatter,您可以使用Handler的setFormatter()方法来设定讯息的输出格式,例如: fileHandler.setFormatter(new SimpleFormatter());
如果FileHandler设定为SimpleFormatter,则输出的记录档内容与主控台看到的就是相同的内容。 |