可見,默認(rèn)的日志方式是xml格式,很爛。所以最好自定義下logger的格式。需要用Formatter來定義。五、Logger的FormatterFormatter 為格式化 LogRecords 提供支持。一般來說,每個(gè)日志記錄 Handler 都有關(guān)聯(lián)的 Formatter。Formatter 接受 LogRecord,并將它轉(zhuǎn)換為一個(gè)字符串。有些 formatter(如 XMLFormatter)需要圍繞一組格式化記錄來包裝頭部和尾部字符串。可以使用 getHeader 和 getTail 方法來獲得這些字符串。LogRecord 對(duì)象用于在日志框架和單個(gè)日志 Handler 之間傳遞日志請(qǐng)求。LogRecord(Level level, String msg) 用給定級(jí)別和消息值構(gòu)造 LogRecord。java.util.logging.Formatterjava.util.logging.SimpleFormatterjava.util.logging.XMLFormatter看個(gè)例子就明白了:publicclassTestLogger {publicstaticvoidmain(String[] args)throwsIOException {Logger log = Logger.getLogger("lavasoft");log.setLevel(Level.INFO);Logger log1 = Logger.getLogger("lavasoft");System.out.println(log == log1);//trueLogger log2 = Logger.getLogger("lavasoft.blog");//log2.setLevel(Level.WARNING);ConsoleHandler consoleHandler =newConsoleHandler();consoleHandler.setLevel(Level.ALL);log.addHandler(consoleHandler);FileHandler fileHandler =newFileHandler("C:/testlog%g.log");fileHandler.setLevel(Level.INFO);fileHandler.setFormatter(newMyLogHander());log.addHandler(fileHandler);log.info("aaa");log2.info("bbb");log2.fine("fine");}}classMyLogHanderextendsFormatter {@OverridepublicString format(LogRecord record) {returnrecord.getLevel() +":"+ record.getMessage()+"/n";}}輸出:在控制和C盤輸出的文件如圖
到此,Java自帶的Logger內(nèi)容就沒了。新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注