在分布式開發中對日誌處理的一些簡單思路
一.約定日誌的格式,以及生成規則
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...