我需要使用Java在運行時分析日誌文件。java - 分析大文本文件
我需要的是,爲了能夠有一個大的文本文件,然後搜索一定範圍內的行內的某個字符串或正則表達式。
範圍本身由另一個搜索推導出來。
例如,我想在文件中搜索字符串"operation ended with failure"
,但不是整個文件,只從"starting operation"
開始。
當然,我可以用普通InputStream
和文件讀取做到這一點,但有一個庫或工具,這將有助於做到這一點更方便?
我需要使用Java在運行時分析日誌文件。java - 分析大文本文件
我需要的是,爲了能夠有一個大的文本文件,然後搜索一定範圍內的行內的某個字符串或正則表達式。
範圍本身由另一個搜索推導出來。
例如,我想在文件中搜索字符串"operation ended with failure"
,但不是整個文件,只從"starting operation"
開始。
當然,我可以用普通InputStream
和文件讀取做到這一點,但有一個庫或工具,這將有助於做到這一點更方便?
檢查這一個 - http://johannburkard.de/software/stringsearch/
希望幫助;)
如果該文件確實非常大,那麼你的情況是好寫Java或任何* nix的工具解決方案將幾乎同樣慢(它將被綁定到IO)。在這種情況下,你不會避免逐行閱讀整個文件....在這種情況下,幾行java代碼就可以完成這項工作......但是,不是一次性的搜索,我會考慮在生成時分割文件,這可能更有效。你可以將重定向到將日誌文件重定向到另一個程序/腳本(awk或python對它來說是完美的),並且在生成時而不是事後分割文件。
方便 - 聽起來像*懶加載* :-D –
它必須在java嗎?我的意思是,grep(一個* nix標準實用程序)完全適合你......這是一個命令行工具。 – chahuistle
或者使用Splunk的 - http://www.splunk.com –