精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

JDK日志框架之實(shí)例結(jié)合STAF淺析

開(kāi)發(fā) 后端
JDK日志框架之實(shí)例結(jié)合STAF是什么呢?本文向你介紹了JDK日志框架中的STAF的概念以及其實(shí)現(xiàn)的基本情況。

JDK日志框架之實(shí)例結(jié)合STAF,STAF 日志服務(wù)概念的提出,這方面是什么情況呢?讓我們首先從什么是STAF開(kāi)始。

STAF(Software Testing Automation Framework)是一個(gè)自動(dòng)化軟件測(cè)試框架,它可以實(shí)現(xiàn)分布式的自動(dòng)化軟件測(cè)試管理。我們可以應(yīng)用 STAF 庫(kù)的 Java API 來(lái)做基于 STAF 框架的應(yīng)用,同時(shí) STAF 同時(shí)也提供了日志服務(wù)。其日志服務(wù)是用來(lái)記錄自動(dòng)化測(cè)試流程中的信息,方便在 24x7 的自動(dòng)化測(cè)試中記錄自動(dòng)化測(cè)試的操作,便于發(fā)現(xiàn)潛在的自動(dòng)化測(cè)試管理腳本的問(wèn)題。

既然我們可以用 STAF 的 Java API 來(lái)做基于 STAF 的應(yīng)用,我們也可以將JDK 的日志框架同 STAF 的日志服務(wù)接口結(jié)合起來(lái)。 STAF 的日志服務(wù)的 java 接口定義如清單 7 所示:

清單 7 STAFLog 類(lèi)定義

  1. public class STAFLog   
  2. {   
  3. public STAFLog(String logType, String logName, STAFHandle handle);   
  4. public STAFResult log(int level, String msg)   
  5. // Log type constAnts   
  6. public static STAFResult log(STAFHandle theHandle, String logType,   
  7.  String logName, int level, String msg)   
  8. public String getName();   
  9. public String getLogType();   
  10. public int getMonitorMask();   
  11. ... //other methods   
  12. }  


從清單 7 我們可以看出,STAFLog 類(lèi)提供了方法可以將日志信息存儲(chǔ)到 STAF 的日志庫(kù)中, 這個(gè)日志庫(kù)既可以是本地的文件,也可以是另一個(gè) STAF 服務(wù)器上的JDK日志庫(kù)。這是通過(guò)本地 STAF 服務(wù)器的配置來(lái)決定的。而 STAFLog.log() 方法只用于記錄日志信息。

將 STAF 日志服務(wù)的 java API 同JDK日志框架結(jié)合起來(lái)需要做如下步驟:

創(chuàng)建 STAF 日志 Handler 類(lèi)

該類(lèi)封裝了 STAF 日志服務(wù) API 的接口。同時(shí) STAF 的 Java API 需要一個(gè)全局的 STAFHandle 對(duì)象,用來(lái)表示本地的 STAF 服務(wù)句柄。這個(gè)可以通過(guò)建立一個(gè)靜態(tài)的 STAFHandle 對(duì)象即可。其代碼如下所示,我們定義了一個(gè) STAFHandler 類(lèi)如清單 8 所示。

清單 8 STAFHandler 類(lèi)實(shí)現(xiàn)

  1. import java.util.logging.*;   
  2. import com.ibm.staf.wrapper.STAFLog;   
  3.  
  4. public class STAFHandler extends Handler {   
  5. private String logName;   
  6. private static STAFHandle stafHandle = null;   
  7. public STAFHandler(String name) {   
  8. configure();   
  9. logName = name;   
  10. }   
  11. public STAFHandler() {   
  12. configure();   
  13. }   
  14.  
  15. @Override   
  16. public void close() throws SecurityException {   
  17. if (stafHandle != null){   
  18. try {   
  19. stafHandle.unRegister();   
  20. } catch (STAFException e) {   
  21. //ignore   
  22. }   
  23. }   
  24. }   
  25.  
  26. @Override   
  27. public void flush() {   
  28. //nothing   
  29. }   
  30.  
  31. @Override   
  32. public void publish(LogRecord record) {   
  33. if (!isLoggable(record)) {   
  34. return;   
  35. }   
  36. String msg;   
  37. try {   
  38. msg = getFormatter().format(record);   
  39. } catch (Exception ex) {   
  40. reportError(null, ex, ErrorManager.FORMAT_FAILURE);   
  41. return;   
  42. }   
  43.  
  44. try {   
  45. STAFLog.log(stafHandle, STAFLog.MACHINE,   
  46. logName, record.getLevel().getName(), msg);   
  47. } catch (Exception ex) {   
  48. reportError(null, ex, ErrorManager.WRITE_FAILURE);   
  49. }   
  50.  
  51. ...  


在實(shí)現(xiàn) STAFHandler 類(lèi)時(shí)有以下幾個(gè)要點(diǎn):

1、由于 STAF API 的調(diào)用時(shí)需要一個(gè) STAFHandle 的對(duì)象來(lái)代表本地的 STAF 服務(wù),在該類(lèi)中聲明了一個(gè)全局變量用來(lái)存儲(chǔ) STAFHandle .

2、close 方法是用來(lái)清理系統(tǒng)資源的,上述代碼的 close 方法中釋放了全局變量 STAFHandle 對(duì)象。

3、publish 方法就是獲得格式化后的消息后,直接調(diào)用 STAF 的日志 API 將日志發(fā)送到 STAF 服務(wù)中。

但到目前為止,我們還沒(méi)有給 STAFHandler 類(lèi)添加一個(gè)配置的代碼,使之可以支持配置文件。下面我們定義了一個(gè)函數(shù) configure,其代碼如清單 9 所示。

清單 9 配置函數(shù)實(shí)現(xiàn)

  1. private void configure() {  
  2. if (stafHandle == null) {  
  3. try {  
  4. stafHandle = new STAFHandle("my application");  
  5. } catch (STAFException e) {  
  6. reportError("registe staf handle error", e, ErrorManager.OPEN_FAILURE);  
  7. }  
  8. }  
  9.  
  10. LogManager manager = LogManager.getLogManager();  
  11. String cname = getClass().getName();  
  12. //set staf log name  
  13. logName = manager.getProperty(cname + ".name");  
  14. if (logName == null)  
  15. logName = "demo.staflog";  
  16.  
  17. //set formatter  
  18. String sformatter = manager.getProperty(cname + ".formatter");  
  19. Formatter formatter = null;  
  20. if (sformatter != null) {  
  21. try {  
  22. formatter = (Formatter)Class.forName(sformatter).newInstance();  
  23. } catch (Exception e) {  
  24. //ignore  
  25. }  
  26. }  
  27.  
  28. setFormatter(formatter == null? new STAFFormatter() : formatter);  
  29.  
  30. //set level  
  31. String sLevel = manager.getProperty(cname + ".level");  
  32. Level level = null;  
  33. if (sLevel != null) {  
  34. try {  
  35. level = STAFLevel.parse(sLevel);  
  36. } catch (Exception e) {  
  37. //ignore  
  38. }  
  39. }  
  40. setLevel(level == null? STAFLevel.DEBUG : level);  
  41. }  


在實(shí)現(xiàn)配置文件支持的代碼中,有以下幾個(gè)要點(diǎn):

1、STAF API 的初始化需要注冊(cè) STAFHandle 對(duì)象。而且該注冊(cè)只能執(zhí)行一次。我們根據(jù)全局變量 stafHandle 的值來(lái)決定是否注冊(cè)該對(duì)象。

2、JDK的日志框架有一個(gè)全局的 singleton 管理類(lèi) STAFManager,該類(lèi)用于管理日志類(lèi),并提供了讀取日志配置文件的成員函數(shù) getProperty 。在上述的代碼中,我們通過(guò) STAFManager.getProperty 方法,從日志配置文件中讀取 STAFHandler 對(duì)象所設(shè)置的 Formatter 類(lèi)名,然后通過(guò)反射生成一個(gè)新的 Formatter 對(duì)象,設(shè)置到 Handler 對(duì)象中。

3、對(duì)于日志級(jí)別也是通過(guò) STAFManager.getProperty 方法。需要注意的是由于我們的日志級(jí)別是自定義的級(jí)別,所以 Level 對(duì)象是由我們自定義的 Level 類(lèi) STAFLevel 來(lái)生成的。

4、我們也能定義自己需要的屬性。比如清單 9 中我們定義了一個(gè) .name 屬性,用來(lái)存儲(chǔ) STAF 日志名稱(chēng),通過(guò) getProperty 函數(shù)從配置文件中讀取 .name 屬性。

JDK日志框架之實(shí)例結(jié)合STAF的情況就介紹到這里,那么關(guān)于JDK日志框架之實(shí)例結(jié)合STAF的更多情況,我們要在學(xué)習(xí)過(guò)程中加以鞏固提高。

【編輯推薦】

  1. Java虛擬機(jī)內(nèi)部構(gòu)成淺析
  2. 淺談Java線程的生命周期
  3. 關(guān)于Java繼承的一些復(fù)習(xí)
  4. 實(shí)現(xiàn)Java中對(duì)象比較的兩個(gè)方法
  5. Java中兩個(gè)特殊變量this和super 的使用
責(zé)任編輯:仲衡 來(lái)源: 新浪博客
相關(guān)推薦

2009-07-07 15:53:02

JDK日志

2009-07-07 14:00:25

JDK日志Handler

2009-07-07 13:45:52

JDK日志框架

2010-02-05 15:33:29

Android JDK

2009-07-07 16:13:39

JDK日志

2009-07-07 14:32:47

JDK日志Formatter

2009-07-07 16:39:40

JDK Observe

2009-07-09 11:02:37

JDK5.0內(nèi)置工具

2009-07-08 14:06:22

ClassLoaderJDK源碼

2009-07-08 17:59:51

JDK JRE

2011-07-07 17:06:03

SQL Server

2022-05-24 07:39:09

MySQL數(shù)據(jù)庫(kù)日志

2009-09-22 13:09:06

Hibernateorm框架

2009-09-14 16:46:15

LINQ to XML

2009-07-16 09:14:26

iBATIS DAO

2009-07-27 14:29:31

ASP.NET編程彈窗報(bào)警提示

2009-08-27 13:30:11

C# interfac

2009-07-22 09:44:05

iBATIS Para

2009-07-08 17:02:11

JDK實(shí)現(xiàn)調(diào)用攔截器

2009-08-06 10:49:45

ASP.NET服務(wù)器控
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

4438x亚洲最大成人网| www.色播.com| 成人亚洲性情网站www在线观看| 99只有精品| 在线看片欧美| 69堂成人精品免费视频| 在线观看av的网址| 一区二区视频网站| 国产成人1区| 精品国产91久久久久久老师| 国产欧美一区二区三区久久人妖 | 美女扒开腿让男人桶爽久久软| 蜜桃一区二区三区在线| 亚洲欧美一区二区三区在线| 日本在线免费观看一区| 日本韩国欧美中文字幕| 91精品久久久久久综合五月天| 欧美高清在线一区二区| 日韩av免费在线观看| 人妻av一区二区| 色a资源在线| 国产激情偷乱视频一区二区三区| 中日韩美女免费视频网站在线观看| 欧美精品99久久| 熟妇人妻一区二区三区四区 | 国产原创视频在线观看| 一区精品久久| 一区二区三区视频在线| 久久无码高潮喷水| 污污污污污污www网站免费| 黑人糟蹋人妻hd中文字幕| 中文字幕第九页| 2024最新电影免费在线观看| 色多多视频在线观看| 琪琪一区二区三区| 这里只有视频精品| 性欧美成人播放77777| 成av人片在线观看www| 不卡av在线网| 国产精品久久久久久亚洲伦 | 久久综合资源网| 欧美亚洲视频在线看网址| 中文字幕 亚洲一区| 原纱央莉成人av片| 国产精品色呦呦| 精品无码久久久久久久动漫| 日本a级c片免费看三区| 成人情趣视频| 欧美绝品在线观看成人午夜影视| 福利在线小视频| 国产亚洲依依| 国产一区二区三区蝌蚪| 久久久久久com| 99久久久无码国产精品性 | 欧美成人蜜桃| 中文字幕网av| 毛片网站在线免费观看| www.日本在线观看| 精品亚洲免费视频| 九九九热精品免费视频观看网站| 黄色av电影网站| 亚洲91网站| 色呦呦国产精品| 国产精品88久久久久久妇女| 蜜芽在线免费观看| 亚洲蜜桃精久久久久久久| 国产视频不卡| 亚洲一级av毛片| 亚洲欧洲日本mm| 日韩在线视频网站| 中文字幕天堂av| 久久亚州av| 欧美一区二区在线视频| 国产黄色特级片| 国精产品一区一区三区mba下载| 久久久久国产精品厨房| 97视频资源在线观看| 免费无码国产精品| 最新国产乱人伦偷精品免费网站| 51久久精品夜色国产麻豆| 久久精品无码av| 毛片av一区二区| 91av在线精品| 久久久久久久久久久久久久免费看| 国产欧美日韩视频在线| 中文字幕亚洲精品| 欧洲猛交xxxx乱大交3| 日韩国产一区| 亚洲欧洲国产一区| 亚洲熟女少妇一区二区| 自拍偷拍欧美一区| 亚洲第一色中文字幕| 亚洲在线观看网站| 久久精品资源| 欧美天天综合网| 国产一区二区视频免费在线观看| 成人亚洲视频| 精品日韩99亚洲| ass极品水嫩小美女ass| 色婷婷成人网| 欧美日韩第一区日日骚| 久久精品网站视频| 日本99精品| 亚洲人成啪啪网站| 欧美日韩精品在线观看视频| 国产精品三上| **欧美日韩vr在线| 一本色道久久综合精品婷婷| 成人精品高清在线| 一区一区视频| 77777影视视频在线观看| 国产亚洲精品福利| 日本午夜精品一区二区三区| 深夜福利视频一区| 欧美肉体xxxx裸体137大胆| www.欧美色图| 99精彩视频| 性一交一乱一精一晶| 精品一区二区影视| 91精品在线一区| 91精品国产乱码久久久| 久久精品国产精品亚洲精品| 国产精品加勒比| 特黄视频在线观看| 国产精品国产精品国产专区不蜜 | 色橹橹欧美在线观看视频高清| 日韩女优av电影| 91porn在线| 欧美大片网址| 亚洲片国产一区一级在线观看| 国产人妻精品一区二区三区不卡| 中文字幕亚洲精品乱码| 欧美成人精品h版在线观看| 欧美日韩精品在线观看视频| 奇米综合一区二区三区精品视频| 看高清中日韩色视频| 波多野结衣乳巨码无在线观看| 欧美日韩大陆一区二区| 日本欧美一区二区三区不卡视频| 日韩黄色大片| 国产精品aaa| 国产乱码精品一区二三区蜜臂| 国产一区欧美一区| 日韩欧美第二区在线观看| 午夜伦理福利在线| 欧美色综合网站| 杨幂一区二区国产精品| 狼人精品一区二区三区在线| 久久精品视频网站| 日韩av在线电影| 日韩主播视频在线| 亚洲自拍偷拍福利| 欧美黄色小说| 亚洲视频狠狠干| 免费毛片小视频| 美女视频免费精品| 91sao在线观看国产| 亚洲色图欧美视频| 亚洲欧美在线视频| 香港三级韩国三级日本三级| 国产伦精品一区二区三区免费优势| 亚洲人成在线观| 久久精品五月天| 国产精品乱码一区二区三区软件| 亚洲 激情 在线| 久久悠悠精品综合网| 国产91对白在线播放| 涩涩视频在线观看免费| 一本一道综合狠狠老| 亚洲一级黄色录像| 国产一区二区三区精品欧美日韩一区二区三区 | 精品久久国产视频| 亚洲一二三区不卡| 自拍偷拍21p| 88国产精品视频一区二区三区| 91av视频在线播放| 久久久久久女乱国产| 欧洲视频一区二区| 野花社区视频在线观看| 久久精品中文| 国产欧美一区二区视频 | 国产精品久久久久久亚洲影视 | 亚洲国产精品女人久久久| 亚洲一区免费看| 成人欧美一区二区三区在线观看| 国产又粗又猛又爽又| 国产精品白丝jk黑袜喷水| 欧美一级爱爱| 精品久久在线| 久久久欧美精品| 99热这里精品| 亚洲欧洲www| 黄色性视频网站| 日韩经典中文字幕一区| 免费成人进口网站| 欧美黑粗硬大| 久久久亚洲精品视频| 国产精品久久久久久久龚玥菲| 亚洲国产精品一区二区www在线| www.cao超碰| 欧美日韩中文一区二区| 99久久99久久| 欧美福利在线播放| 精品无人区乱码1区2区3区在线| 久久久久久国产精品视频| 久久久精品免费免费| 日本黄色www| 日韩不卡手机在线v区| 91成人综合网| caoporn成人免费视频在线| 久久电影一区二区| 国产在线视频网址| 337p日本欧洲亚洲大胆色噜噜| 国产亚洲精品久久777777| 国产亚洲成av人在线观看导航| 亚洲欧洲日韩综合| 老鸭窝一区二区久久精品| 日本三级免费网站| 欧美精品激情| 96精品久久久久中文字幕| 麻豆mv在线看| 欧美激情网友自拍| 暖暖日本在线观看| 亚洲美女在线视频| 色婷婷中文字幕| 欧美xxxx在线观看| 国产欧美熟妇另类久久久 | 日本欧美在线看| 亚洲熟妇av日韩熟妇在线| 欧美在线黄色| 国产欧美日韩综合一区在线观看| 亚洲精品一区av| 久久91精品国产91久久久| 成人好色电影| 亚洲视频日韩精品| 日韩av免费观影| 亚洲精品wwww| 人妻妺妺窝人体色www聚色窝 | 国产一级不卡视频| 小小影院久久| 久久久国产精华液999999| 成人a'v在线播放| 人禽交欧美网站免费| 天堂资源在线亚洲| 蜜桃传媒视频第一区入口在线看| 风间由美中文字幕在线看视频国产欧美 | 欧美va在线观看| 国产成人极品视频| 日韩一区二区三区在线免费观看 | 久久精品国产成人av| 午夜精品福利在线| 舐め犯し波多野结衣在线观看| 蜜臀av在线播放一区二区三区| 播放灌醉水嫩大学生国内精品| 日韩亚洲国产欧美| 神马影院午夜我不卡| 大胆国模一区二区三区| 国a精品视频大全| 日本在线视频网址| 欧美激情videoshd| 国产小视频在线播放| 一区二区三区视频观看| 在线免费看av| 美女999久久久精品视频| 在线h片观看| 91精品国产精品| 日韩精品99| 欧美精品激情在线观看| 欧美人动性xxxxz0oz| 伊人久久久久久久久久| 成人免费在线电影| 美女性感视频久久久| 激情av在线播放| 青草青草久热精品视频在线观看| 久cao在线| 欧美韩国理论所午夜片917电影| 福利成人导航| 日韩免费在线视频| 亚洲我射av| 国产精品国产亚洲精品看不卡15| 西野翔中文久久精品国产| 婷婷久久伊人| 国产精品va| 自拍视频一区二区三区| 午夜国产欧美理论在线播放| 久久久久久久久久网| 久久久久美女| 成人毛片一区二区| 蜜臀av国产精品久久久久| 成人做爰69片免费| 欧美韩日一区二区三区四区| 女同性恋一区二区三区| 国产激情视频一区二区三区欧美| 欧美xxxx日本和非洲| 国产欧美一区二区三区鸳鸯浴| 动漫性做爰视频| 色哟哟一区二区| 精品人妻伦一二三区久久 | 亚洲精品传媒| 久久免费国产视频| 精品三级在线| 欧美xxxx黑人又粗又长精品| 99精品视频在线| 一本一道久久久a久久久精品91| 亚洲影视一区| 亚洲人成无码www久久久| 国产成人综合自拍| 国产农村妇女精品一区| 国产欧美日韩另类一区| 免费中文字幕在线| 欧美亚日韩国产aⅴ精品中极品| 超碰在线观看99| 色播久久人人爽人人爽人人片视av| 电影k8一区二区三区久久 | 欧美疯狂性受xxxxx另类| 国产精品高清乱码在线观看| 国产精品国产精品| 911久久香蕉国产线看观看| 欧美亚洲日本在线观看| 日韩一区精品视频| 91超薄肉色丝袜交足高跟凉鞋| 国产精品免费免费| 天天干,天天干| 国产丝袜一区视频在线观看| 久久青青色综合| 亚洲一区二区三区四区在线播放| 欧美日韩精品一区二区视频| 免费看一级大黄情大片| 丁香一区二区三区| 久久精品国产亚洲av麻豆| 久久亚洲精品小早川怜子| 久久久久免费看| 日韩一区二区三区视频| 亚洲欧美激情在线观看| 日韩av在线精品| 极品白浆推特女神在线观看| 久久久女人电视剧免费播放下载| 视频免费一区二区| 99中文字幕在线观看| 激情国产一区二区| 视频国产一区二区| 午夜精品久久久久影视| 午夜精品小视频| 欧美精品一二区| 欧州一区二区三区| 91视频成人免费| 国产69精品久久久久777| 一级黄色片大全| 欧美日韩国产一区二区| 中文字幕人妻精品一区| 亚洲午夜久久久久久久| 黄色网页在线观看| 成人网中文字幕| 亚洲婷婷伊人| 国产综合免费视频| 手机精品视频在线| 一区二区三区.www| 99成人精品视频| 精品成人免费观看| 91超碰在线免费| 成人a在线观看| 亚洲电影在线一区二区三区| 91香蕉国产线在线观看| 亚洲免费观看在线视频| 午夜免费福利视频| 午夜精品蜜臀一区二区三区免费| 国产精品99| 99热一区二区三区| 日韩电影一区二区三区| 精品人妻中文无码av在线| 亚洲国产精品尤物yw在线观看| 欧美 日韩 国产 成人 在线| 51色欧美片视频在线观看| 国产欧美久久一区二区三区| jizzzz日本| 亚洲一区视频在线观看视频| 天堂在线中文字幕| 欧美日韩999| 日韩欧美国产大片| 美女网站色免费| 一区二区在线观看免费| 亚洲一区 中文字幕| 欧美成人免费观看| 国产一级成人av| 91日韩视频在线观看| 99这里都是精品| 成人一二三四区| 色综合男人天堂| 久久99国产成人小视频| 久久亚洲中文字幕无码| 久久久99精品久久| 国产老妇伦国产熟女老妇视频| 国a精品视频大全| 日韩一级毛片| 日韩综合第一页| 欧美精品一级二级三级| 高端美女服务在线视频播放| 亚洲成人网上| 麻豆极品一区二区三区| 国产一级视频在线|