NIO讀取日誌檔案

2021-09-02 09:18:14 字數 1506 閱讀 9132

在分布式開發中對日誌處理的一些簡單思路

一.約定日誌的格式,以及生成規則

1.約定日誌的輸出格式

2.約定生成日誌的目錄

3.約定日誌生成的時段,是按天生成乙個日誌檔案、還是按小時生成

二.日誌抽取

1.日誌抽取的應用對日誌資訊抽取入mysql庫

2.定時統計各個應用所要統計的內容(srping+quarz)

3.提供web端可以檢視統計分析(hightchar)

@test

public void test() throws exception

buffer.clear();

}fcin.close();

fcout.close();

fin.close();

fout.close();

system.out.println("結束時間"+system.currenttimemillis());

system.out.println("消耗時間" +(system.currenttimemillis() - time));

}

本機的配置是win7 4g記憶體  64為系統  32為jdk

採用的nio來處理,此日誌為 2.57 gb (2,764,091,431 位元組)讀取使用以上bytebuffer.allocate(15360);         得到的值是

開始時間1419939751750

結束時間1419939811927

消耗時間60177

這個值的的設定可根據自己的電腦實際配置測試得到,這個值在我電腦上讀取幾乎感覺不到cpu的波動,這個開多個執行緒處理也是可行的。

檔案蒐集完後那就是對檔案的讀取,併入資料庫,採用的測試方法是:

@test

public void testread() throws exception

} fin.seek(pos);

while((line=fin.readline())!=null)

system.out.println("結束時間"+system.currenttimemillis());

system.out.println("消耗時間" +(system.currenttimemillis() - time));

}

這個類可以設定已經讀到位置,下次從設定的位置開始讀取  pos = fin.getfilepointer(),逐行讀取解析入庫

還有nio種另外一種檔案寫入方式

@test

public void testtransto()catch(exception e)

}

這種方式讀取2.5個的log日誌我的cpu瞬間達到90%以上,但讀取時間是47,縮減為原來的1/2需要24但cpu也是瞬間到達90%以上,縮減為原來的1/3的讀取時間為17 cpu比較穩定,所以才想是不是在讀取1g一下的日誌時速度回高一些。

讀取日誌檔案

represents the log level,level of value 4 is the most important public enum loglevel int 讀取日誌檔案 filemanager.instance createdirectoryfrompath pathdirlo...

python讀取日誌檔案

下面是我們的日誌檔案,裡面都是一條條這樣的資料 為了將讀取的日誌檔案存入mysql,我們需要讀取日誌檔案,然後按照指定格式切割出需要的資料 表字段會是time,ip level,messages 這個可以處理大檔案,因此每次只讀取一行 def read log 讀取日誌檔案,進行資料重組,寫入mys...

nio 三 檔案讀取和寫入

讀取 path p4 paths.get e 版本控制1 服務端 2.txt try bufferedreader reader files.newbufferedreader p4,standardcharsets.utf 8 簡化版讀取 listcontents files.readalllin...