国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當前位置: 首頁 > news >正文

學院網(wǎng)站建設管理規(guī)章制度谷歌瀏覽器官網(wǎng)入口

學院網(wǎng)站建設管理規(guī)章制度,谷歌瀏覽器官網(wǎng)入口,鄭州高端定制建設網(wǎng)站,企業(yè)網(wǎng)站建設步驟是什么JUL全稱Java util logging 入門案例 先來看著入門案例,直接創(chuàng)建logger對象,然后傳入日志級別和打印的信息,就能在控制臺輸出信息。 可以看出只輸出了部分的信息,其實默認的日志控制器是有一個默認的日志級別的,默認就…

JUL全稱Java util logging

入門案例

先來看著入門案例,直接創(chuàng)建logger對象,然后傳入日志級別和打印的信息,就能在控制臺輸出信息。

?可以看出只輸出了部分的信息,其實默認的日志控制器是有一個默認的日志級別的,默認就是info 所以最多優(yōu)先級比info低的都不能輸出。

?

    @Testpublic  void testQuick() {System.out.println("hello");//傳入唯一標識,一般為當前的類名Logger logger=  Logger.getLogger("com.itheima.julTest");logger.severe("severe logger message");//logger.log(Level.severe,"logger message");logger.warning("warning logger message");logger.info("info logger message");  //默認日志級別logger.config("config logger message");logger.fine("fine logger message");logger.finer("finer logger message");logger.finest("finest logger message");}

自定義日志級別

設置handler,設置handler和logger的級別

  • Handler:日志處理器,每個Logger會關聯(lián)持有多個Handler,Logger會把日志交給Handler進行處理,由Handler負責日志記錄。Handler在這里是一個抽象,其具體實現(xiàn)決定了日志輸出的位置,比如控制臺,文件等

也就是說,通過使用不同的handler可以將日志輸出到文件或者控制臺。

下面這個地方:
? ? ? ? ? ? //logger設置不使用父logger的handler,不然日志會重復記錄。此處后面會講
? ? ? ? ? ? logger.setUseParentHandlers(false);

如果不設置,將會輸出兩邊日志信息

 @Testpublic  void loggerLevel() {//創(chuàng)建日志記錄器,傳入?yún)?shù)是日志記錄器的名稱Logger logger = Logger.getLogger("com.itheima");//創(chuàng)建一個輸出到控制臺的handlerConsoleHandler consoleHandler = new ConsoleHandler();//設置handler的日志級別為ALL,輸出全部日志。consoleHandler.setLevel(Level.ALL);//把handler添加到logger中l(wèi)ogger.addHandler(consoleHandler);//logger也設置日志級別為ALLlogger.setLevel(Level.ALL);//logger設置不使用父logger的handler,不然日志會重復記錄。此處后面會講logger.setUseParentHandlers(false);//記錄severe級別信息logger.severe("severe信息");//記錄warning級別信息logger.warning("warning信息");logger.info("info信息");logger.config("config信息");logger.fine("fine信息");logger.finer("finer信息");logger.finest("finest信息");}

父子關系

一開始以為是繼承,后來發(fā)現(xiàn)并不是,只是通過設置可以復用一些配置

默認父子關系通過名稱的層級關系來確定的。層級關系用 . 號分開。

也可以通過手動設置。

JUL在初始化時會創(chuàng)建一個頂層的RootLogger作為所有Logger的父Logger。

下面的代碼中就是:rootlogger->logger1->logger2logger3.

 @Testpublic void testLoggerParent(){//創(chuàng)建一個名稱為aaa的loggerLogger logger1 = Logger.getLogger("aaa");//創(chuàng)建一個名稱為aaa.bbb的loggerLogger logger2 = Logger.getLogger("aaa.bbb");//創(chuàng)建一個名稱為aaa.bbb.ccc的loggerLogger logger3 = Logger.getLogger("aaa.bbb.ccc");//此時logger3的父Logger是logger2, logger2的父logger是logger1//判斷l(xiāng)ogger3的父Logger是不是logger2System.out.println(logger3.getParent() == logger2);//判斷l(xiāng)ogger2的父logger是不是logger1System.out.println(logger2.getParent() == logger1);//logger1的父節(jié)點是頂級Logger RootLoggerSystem.out.println("logger1的父logger是 " + logger1.getParent());//RootLogger的父LoggerSystem.out.println("RootLogger的父Logger是 " + logger1.getParent().getParent());//手動設置父Loggerlogger3.setParent(logger1);//判斷設置是否成功System.out.println(logger3.getParent() == logger1);}

子Logger默認會使用父Logger的Handler對象

如果使用addHandler添加新的handler,也會使用新添加的handler再輸出一次
?

    @Testpublic void testUserParentHandler()  {//創(chuàng)建一個名為aaa的loggerLogger logger1 = Logger.getLogger("aaa");//創(chuàng)建一個名為aaa.bbb的logger,父Logger是handlerLogger logger2 = Logger.getLogger("aaa.bbb");//創(chuàng)建一個handlerConsoleHandler consoleHandler  = new ConsoleHandler();//把handler添加到logger1和logger2中。logger1.addHandler(consoleHandler);logger2.addHandler(consoleHandler);//使用logger進行日志輸出//記錄severe級別信息logger2.severe("severe信息");//記錄warning級別信息logger2.warning("warning信息");logger2.info("info信息");logger2.config("config信息");logger2.fine("fine信息");logger2.finer("finer信息");logger2.finest("finest信息");}

分析:
每個級別的日志信息輸出了三次,因為logger2使用了父Logger logger1 ,父Logger的父Logger RootLogger、還有自身的handler共三個handler,所以日志會輸出三倍。

?

使用logger2.setUseParentHandlers(false); 設置不使用父Logger的Handler。

FileHandler和SimpleFormatter

前面說到了通過設置handler可以將日志輸出到文件,這里就測試一下

?

    @Testpublic void testFileHandler(){Logger logger = Logger.getLogger("juldemo.JULDemo");logger.setLevel(Level.ALL);try {//創(chuàng)建一個輸出到文件的handler,第一個參數(shù)是生成文件名的pattern,第二個參數(shù)是是否已追加的方式輸出到文件,默認falseFileHandler fileHandler = new FileHandler("D:\\project\\idea\\log_learning\\jul_demo\\logs\\java%u.log",true);//創(chuàng)建一個SimpleFormatter,輸出格式SimpleFormatter formatter = new SimpleFormatter();//設置formatterfileHandler.setFormatter(formatter);//設置日志級別fileHandler.setLevel(Level.ALL);//把handler添加到loggerlogger.addHandler(fileHandler);//設置不使用父Logger的handlerlogger.setUseParentHandlers(false);logger.severe("severe信息");//記錄warning級別信息logger.warning("warning信息");logger.info("info信息");logger.config("config信息");logger.fine("fine信息");logger.finer("finer信息");logger.finest("finest信息");} catch (IOException e) {e.printStackTrace();}}

通過配置文件配置


#配置RootLogger的Handler,有java.util.logging.ConsoleHandler,java.util.logging.FileHandler
handlers= java.util.logging.ConsoleHandler,java.util.logging.FileHandler#配置RootLogger的日志級別ALL
.level= ALLjava.util.logging.FileHandler.pattern = D:\\project\\idea\\log_learning\\jul_demo\\logs\\java%u.log
#默認一個文件最多50000條日志記錄
java.util.logging.FileHandler.limit = 50000
#設置FileHandle的日志級別為ALL
java.util.logging.FileHandler.level= ALL#配置生成一個文件
java.util.logging.FileHandler.count = 1
#配置使用SimpleFormatter格式器
java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
#配置追加模式
java.util.logging.FileHandler.append=true#ConsoleHandler的日志級別默認是INFO
java.util.logging.ConsoleHandler.level = ALL
#ConsoleHandler的默認格式化器時SimpleFormatter
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter#設置日志格式
java.util.logging.SimpleFormatter.format= %1$tc %2$s%n%4$s: %5$s%6$s%n
@Testpublic void testCustomConfig(){LogManager logManager = LogManager.getLogManager();try {logManager.readConfiguration(this.getClass().getClassLoader().getResourceAsStream("logging.properties"));Logger logger = Logger.getLogger("juldemo.JULDemo");logger.severe("severe信息");//記錄warning級別信息logger.warning("warning信息");logger.info("info信息");logger.config("config信息");logger.fine("fine信息");logger.finer("finer信息");logger.finest("finest信息");} catch (IOException e) {e.printStackTrace();}}

http://m.aloenet.com.cn/news/28231.html

相關文章:

  • 網(wǎng)站開發(fā)功能需求表下載班級優(yōu)化大師并安裝
  • 煙臺中企動力提供網(wǎng)站建設游戲推廣論壇
  • 做設計的都用那些網(wǎng)站seo基礎知識
  • 推廣型網(wǎng)站建設電話百度開戶需要什么資質
  • 漯河企業(yè)網(wǎng)站建設公司軟文廣告示范
  • 英文書 影印版 網(wǎng)站開發(fā)廈門人才網(wǎng)個人會員
  • 中國那個公司的網(wǎng)站做的最好看有什么平臺可以推廣
  • 菏澤建設局網(wǎng)站網(wǎng)絡視頻營銷平臺
  • 招商加盟類網(wǎng)站模板網(wǎng)站建設費用
  • 手機做網(wǎng)站用什么軟件灰色詞排名推廣
  • 微小店網(wǎng)站建設平臺網(wǎng)絡營銷推廣方案策劃
  • 做網(wǎng)站的要花多少錢推廣普通話作文
  • 低價網(wǎng)站建設行業(yè)現(xiàn)狀win10優(yōu)化軟件哪個好
  • 徐州網(wǎng)站優(yōu)化品牌宣傳如何做
  • 建站需要哪些東西武漢網(wǎng)絡營銷推廣
  • 住房和城鄉(xiāng)建設廳網(wǎng)站辦事大廳百度小程序對網(wǎng)站seo
  • 網(wǎng)站空間購買長沙關鍵詞優(yōu)化方法
  • 雄安網(wǎng)站建設公司百度純凈版首頁入口
  • 朝陽周邊網(wǎng)站建設對seo的認識和理解
  • 怎么上傳網(wǎng)站地圖seo外包公司哪家專業(yè)
  • 自己做網(wǎng)站要會什么軟件怎么弄屬于自己的網(wǎng)站
  • 科技網(wǎng)站設計公司有哪些北京外貿(mào)網(wǎng)站優(yōu)化
  • 播視頻網(wǎng)站開發(fā)seo是什么意思中文
  • 有關網(wǎng)站開發(fā)的書籍網(wǎng)址域名大全2345網(wǎng)址
  • 個人網(wǎng)站做淘寶客如何備案搜索引擎排名原理
  • 做簡歷的網(wǎng)站叫什么軟件seo免費診斷聯(lián)系方式
  • 網(wǎng)站一般怎么推廣百度互聯(lián)網(wǎng)營銷是什么
  • 鹽城網(wǎng)站建設報價廣州市疫情最新
  • 代刷網(wǎng)站app制作教程百度搜索資源
  • 杭州臨平網(wǎng)站建設廣州排名推廣