国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Java中解析日志

haitiancoder / 2804人閱讀

摘要:中解析日志常用的是,是一個用于解析和其它文件的簡單易用的,并且它可以將這些無結構的轉換成結構化的數(shù)據(jù)使用正則表達式對進行解析,常用的是和,下面來具體說說各自的使用是組織提供的實現(xiàn),在倉庫中輸入就可以找到對應的包簡單項目如果是簡單項目,直接

Java中解析日志常用的是Grok,Grok是一個用于解析logs和其它文件的簡單易用的API,并且它可以將這些無結構的logs轉換成結構化的數(shù)據(jù)(JSON),使用正則表達式對logs進行解析,常用的是grok和java-grok,下面來具體說說各自的使用

grok

grok是io.thekraken組織提供的實現(xiàn),在mven倉庫中輸入io.thekraken就可以找到對應的jar包

簡單Java項目

如果是簡單Java項目,直接引入依賴的jar包即可,對于0.1.5的版本,必須引入5個jar包:commons-lang3-3.1.jar、slf4j-api-1.7.25.jar、slf4j-nop-1.7.25.jar、gson-2.2.2.jar、grok-0.1.5.jar

MAVEN項目

如果是MAVEN項目,直接POM文件中添加如下依賴就可以了


    io.thekraken
    grok
    0.1.5
使用舉例

由于logs等結構復雜,所以grok使用正則表達式來解析日志,它對于很多常見的logs(如:mongodb、redis、java)已經(jīng)內置好了正則表達式庫,當然也可以根據(jù)logs的格式自定義正則表達式庫,使用起來很簡單,代碼如下:

public static void useGrok()  throws Exception {
    String GROK_PATTERN_PATH = "src/grok-pattern";
    String logMsg = "<165>1 2003-08-24T05:14:15.000003-07:00 192.0.2.1 myproc 8710 - - %% It"s time to make the do-nuts.";
    String pattern = "%{SYSLOG5424LINE}";
    Grok grok = new Grok();
    grok.addPatternFromFile(GROK_PATTERN_PATH);
    grok.compile(pattern);
    Match grokMatch = grok.match(logMsg);
    grokMatch.captures();
    if(!grokMatch.isNull()){
        System.out.println(grokMatch.toMap().toString());
        System.out.println(grokMatch.toJson().toString());
    }else{
        System.out.println("not match");
    }
}

可以在Github上查看更多關于grok的使用

java-grok

java-grok是io.krakens組織提供的實現(xiàn),在maven倉庫中輸入io.krakens即可找到對應的jar包

簡單Java項目

如果是簡單Java項目,直接引入依賴的jar包即可,對應0.1.9版,除了引入java-grok-0.1.9.jar外,還必須引入commons-lang3-3.1.jar

MAVEN項目

如果是MAVEN項目,直接POM文件中添加如下依賴就可以了


    io.krakens
    java-grok
    0.1.9
使用舉例

java-grok也內置了許多正則表達式,使用起來相對grok簡單,不需要顯示地指定pattern文件位置

public static void useJavaGrok() throws Exception {
    GrokCompiler grokCompiler = GrokCompiler.newInstance();
    grokCompiler.registerDefaultPatterns();
    final io.krakens.grok.api.Grok grok = grokCompiler.compile("%{COMBINEDAPACHELOG}");
    String log = "112.169.19.192 - - [06/Mar/2013:01:36:30 +0900] "GET / HTTP/1.1" 200 44346 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.152 Safari/537.22"";
    io.krakens.grok.api.Match grokMatch = grok.match(log);
    final Map capture = grokMatch.capture();
    System.out.println(capture);
}

可以在Github上查看更多關于java-grok的使用

文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/72010.html

相關文章

  • 崩潰bug日志總結1

    摘要:項目中異常分析引發(fā)崩潰日志的流程分析解決辦法常見的出現(xiàn)場景狀態(tài)異常非法線程操作。引發(fā)崩潰日志的流程分析解釋如下所示,釋放與此位圖關聯(lián)的本機對象,并清除對像素數(shù)據(jù)的引用。 目錄介紹 1.1 java.lang.UnsatisfiedLinkError找不到so庫異常 1.2 java.lang.IllegalStateException非法狀態(tài)異常 1.3 android.conten...

    Scott 評論0 收藏0
  • 強推!大牛程序員必備的Java日志框架,性能無敵

    摘要:本文要來分享給大家程序員最常用的日志框架組件。沒有基礎的同學也不要著急,這套教程覆蓋了目前所有的日志框架,只要你學,就一定用得到,先收藏,以備不時之需。 作為一名Java程序員,我們開發(fā)了很多Java應用程序,包括桌面應用、WEB應用以及移動應用。然而日志系統(tǒng)是一個成熟Java應用所必不可少的。在開發(fā)和調試階段,日志可以幫...

    zebrayoung 評論0 收藏0
  • Play framework源碼解析 Part3:Play的初始化與啟動

    摘要:使用自建的類加載器主要是為了便于處理預編譯后的字節(jié)碼以及方便在模式下進行即時的熱更新。 注:本系列文章所用play版本為1.2.6 在上一篇中,我們分析了play的2種啟動方式,這一篇,我們來看看Play類的初始化過程 Play類 無論是Server還是ServletWrapper方式運行,在他們的入口中都會運行Play.init()來對Play類進行初始化。那在解析初始化之前,我們先...

    xuxueli 評論0 收藏0
  • Android實際開發(fā)bug大總結

    摘要:換句話說,環(huán)境或應用程序沒有處于請求操作的適當狀態(tài)。項目中異常分析引發(fā)崩潰日志的流程分析解決辦法常見的出現(xiàn)場景狀態(tài)異常非法線程操作。導致的方法出來顯示消息位于該消息之后,遲遲沒有執(zhí)行。這時候,的超時檢測結束,刪除了服務中的記錄。 目錄介紹 1.1 java.lang.UnsatisfiedLinkError找不到so庫異常 1.2 java.lang.IllegalStateExce...

    peixn 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<