日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯網營銷解決方案
JDK日志框架之綜合實現淺析

JDK日志框架之綜合實現就是將之前的一切組合起來,實現一個JDK日志類的結合。

成都創(chuàng)新互聯公司專注為客戶提供全方位的互聯網綜合服務,包含不限于成都網站設計、做網站、汾陽網絡推廣、微信小程序、汾陽網絡營銷、汾陽企業(yè)策劃、汾陽品牌公關、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;成都創(chuàng)新互聯公司為所有大學生創(chuàng)業(yè)者提供汾陽建站搭建服務,24小時服務熱線:18980820575,官方網址:www.cdcxhl.com

JDK日志清單 12 描述了如何在一段實際的代碼中將 STAF 日志處理類和 JDK 日志類結合起來。 從清單 12 可以看出,該實例默認指定輸出到 STAF 日志服務的日志名稱為“ staflogger ”。然后通過動態(tài)配置的方法來設定 Handler,Level 和 Formatter .最后在調用JDK的日志對象的log 方法記錄了 4 種自定義級別的日志。

JDK日志清單 12 一個完整的例子

package demo.staflog;

 
 
 
  1. import java.util.logging.Logger; 
  2. public class STAFLoggerTest { 
  3. public static void main(String[] args) { 
  4. Logger logger = Logger.getLogger(STAFLoggerTest.class.getName()); 
  5. logger.setUseParentHandlers(false); 
  6. logger.setLevel(STAFLevel.DEBUG); 
  7. STAFHandler stafHandler = new STAFHandler("staflogger"); 
  8. stafHandler.setLevel(STAFLevel.DEBUG); 
  9. stafHandler.setFormatter(new STAFFormatter()); 
  10. logger.addHandler(stafHandler); 
  11. //log 
  12. logger.log(STAFLevel.DEBUG, "debug log"); 
  13. logger.log(STAFLevel.FATAL, "fatal log"); 
  14. logger.log(STAFLevel.ERROR, "error log"); 
  15. logger.log(STAFLevel.TRACE, "trace log"); 

但我們也可以將這些代碼改為配置文件的方式,其配置文件如清單 13 所示:

JDK日志清單 13 STAFLog 類定義

◆設置日志對象的 Handler

demo.staflog.STAFLoggerTest.handlers= demo.staflog.STAFHandler

demo.staflog.STAFLoggerTest.level = DEBUG

◆取消發(fā)送日志到父 Logger 對象

demo.staflog.STAFLoggerTest.useParentHandlers = FALSE

◆設置 Handler 的名稱,輸出級別和格式化對象

demo.staflog.STAFHandler.name= staflogger

demo.staflog.STAFHandler.level = DEBUG

demo.staflog.STAFHandler.formatter = demo.staflog.STAFFormatter

這樣代碼可以簡化為清單 14 .

JDK日志清單 14 STAFLog 類定義

 
 
 
  1. public class STAFLoggerTest { 
  2. private static Level defaultLevel = STAFLevel.DEBUG; 
  3. public static void main(String[] args) { 
  4. //log 
  5. logger.log(STAFLevel.DEBUG, "debug log"); 
  6. logger.log(STAFLevel.FATAL, "fatal log"); 
  7. logger.log(STAFLevel.ERROR, "error log"); 
  8. logger.log(STAFLevel.TRACE, "trace log"); 

配置文件的方式相對于動態(tài)配置的方式更加靈活,因為這無需改變和重新編譯代碼,只需要修改配置文件,就能修改日志中 Handler,Level 和 Formatter 的組合配置,這對于已經部署發(fā)布的軟件而言,有著更為實際的意義。

當運行代碼后,在命令行中輸入 STAF 命令來顯示 STAF 日志 staflogger:

 
 
 
  1. mymachine:~ myname$ staf local log query machine mymachine logname staflogger 
  2.  Response 
  3.  -------- 
  4.  Date-Time         Level Message   
  5.  ----------------- ----- ---------- 
  6.  20081111-16:15:21 Debug debug log 
  7.  20081111-16:15:21 Fatal fatal log 
  8.  20081111-16:15:21 Error error log 
  9.  20081111-16:15:21 Trace trace log

這顯示了我們剛才在 java 代碼中記錄的信息,它們已經被輸出到 STAF 的日志服務中了。

結束語

那么綜上所述,JDK 日志框架簡單靈活,它雖然比 log4j 出現的時期晚,但其功能并不比 log4j 少。而且 JDK 日志框架直接隸屬于 JDK,被 Java 標準所支持而無需安裝第三方庫文件。本文介紹了 JDK 日志框架的結構,如何擴展JDK 日志框架使之滿足實際的項目需求。并以如何在 Java 程序中將日志輸出到 STAF 的日志服務中為例,一步步描述了如何實現擴展 JDK 日志組件,使之和 STAF 日志服務結合到一起,同時如何創(chuàng)建靈活的配置文件來組合日志框架組件。希望本文可以給其他需要擴展JDK 日志組件的開發(fā)者提供幫助。


網站標題:JDK日志框架之綜合實現淺析
路徑分享:http://www.dlmjj.cn/article/dpdegse.html