- logger的輸出有兩種方式:
①log.log(Level.INFO,"message")
②log.info("mesage")
其他級別的輸出與此類似。 - 獲得com.sample.LoggerSample這個類的logger對象。
可設置其Level,這樣在LoggerSample運行時會根據在LoggerSample中預先定義好的Level級別來輸出log。 - 設置logger輸出級別
各級別按降序排列如下:
SEVERE(最高值)
WARNING
INFO
CONFIG
FINE
FINER
FINEST(最低值)
此外,還有一個級別 OFF,可用來關閉日志記錄,使用級別 ALL 啟用所有消息的日志記錄。
如設置的Level級別比預定義的輸出級別高,則Level較低處的log就不會輸出。 - 可以給logger添加Handler來進行不同形式的輸出:
①FileHandler:輸出到文件
②ConsoleHandler:輸出到控制台
③SocketHandler:輸出到網絡
public class loggerTest { /** 存放的文件夾 **/ private static String file_name = "反饋日志"; /** * 得到要記錄的日志的路徑及文件名稱 * @return */ private static String getLogName() { StringBuffer logPath = new StringBuffer(); logPath.append(System.getProperty("user.home")); //用戶的主目錄 logPath.append("\\"+file_name); File file = new File(logPath.toString()); if (!file.exists()) file.mkdir(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); logPath.append("\\"+sdf.format(new Date())+".log"); return logPath.toString(); } /** * 配置Logger對象輸出日志文件路徑 * @param logger * @param level 在日志文件中輸出level級別以上的信息 * @throws SecurityException * @throws IOException */ public static void setLogingProperties(Logger logger, Level level) { FileHandler fh; try { fh = new FileHandler(getLogName(), true); logger.addHandler(fh);// 日志輸出文件 // logger.setLevel(level); fh.setFormatter(new SimpleFormatter());// 輸出格式 // logger.addHandler(new ConsoleHandler());//輸出到控制台(默認都會輸出到控制台 通過logger.setUseParentHandlers(false)關掉) } catch (SecurityException e) { logger.log(Level.SEVERE, "安全性錯誤", e); } catch (IOException e) { logger.log(Level.SEVERE, "讀取文件日志錯誤", e); } } public static void setLogingProperties(Logger logger) throws SecurityException, IOException { setLogingProperties(logger,Level.ALL); } public static void main(String[] args) { Logger logger = Logger.getLogger("log.text"); try { loggerTest.setLogingProperties(logger); // logger.setUseParentHandlers(false); //不輸出到控制台(放在輸出語句之前) logger.log(Level.INFO,"aaaaa"); logger.setLevel(Level.WARNING); //設置日志級別 設置級別以下的不顯示( logger默認的級別是INFO) logger.log(Level.WARNING, "ccccc"); logger.info("bbbbb"); } catch (SecurityException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
輸出結果:
十一月 14, 2017 4:36:32 下午 test.loggerTest main 信息: aaaaa 十一月 14, 2017 4:36:32 下午 test.loggerTest main 警告: ccccc
相應文件夾也會有對應文件