可见,默认的日志方式是xml格式,很烂。所以最好自定义下logger的格式。需要用Formatter来定义。五、Logger的FormatterFormatter 为格式化 LogRecords 提供支持。一般来说,每个日志记录 Handler 都有关联的 Formatter。Formatter 接受 LogRecord,并将它转换为一个字符串。有些 formatter(如 XMLFormatter)需要围绕一组格式化记录来包装头部和尾部字符串。可以使用 getHeader 和 getTail 方法来获得这些字符串。LogRecord 对象用于在日志框架和单个日志 Handler 之间传递日志请求。LogRecord(Level level, String msg) 用给定级别和消息值构造 LogRecord。java.util.logging.Formatterjava.util.logging.SimpleFormatterjava.util.logging.XMLFormatter看个例子就明白了: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内容就没了。新闻热点
疑难解答