| 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,則輸出的記錄檔內容與主控台看到的就是相同的內容。 |