簡體   English   中英

日志文件中的百分比差異

[英]Percent difference in log files

瀏覽日志文件時,我經常一次又一次遇到相同的錯誤消息。 當然,由於時間戳,用戶名,IP地址等原因,兩行永遠不會相同。

我正在尋找一種設置“差異百分比”的方法,並忽略任何說與已報告的錯誤消息90%相似的行。 另一個想法是也總是忽略時間戳差異。

程序:

  1. 用戶輸入搜索詞(正則表達式或簡單文本)
  2. 用戶輸入容差
    [開始]
  3. Grep找到與搜索詞匹配的字符串並將其發送到新的文本文件
  4. Grep繼續搜索日志,並找到相同的錯誤消息。 差異可能是時間戳記,日期和用戶名。 由於該行與新文件中的行至少相似90%,因此grep不會將其復制過來並繼續搜索
  5. Grep查找與搜索詞匹配的新行。 該行的相似度小於90%,因此它將被復制到新文件,並成為grep與未來結果匹配的另一行。

*編輯:對不起,如果我第一次不清楚。 如果需要的話,我會很樂意解釋。

謝謝。

  • Log.1-DD:MM:YYYY HH:MM:SS:MS錯誤-用戶無法通過IPADDRESS登錄
  • Log.1-DD:MM:YYYY HH:MM:SS:MS引導時硬件失敗
  • Log.2-DD:MM:YYYY HH:MM:SS:MS資源過薄,警告-檢查RAM

我不知道任何完整的即用型解決方案,但Text :: Levenshtein和類似算法可以幫助您弄清楚一個通用字符串與另一個通用字符串的相似之處。

另一個想法是使用時間戳緩存您的日志消息,因此您不會重復過去(例如一分鍾)中看到的消息。

my %msg_cache = ();
sub log_filter {
    my $msg = shift;
    if (defined($msg_cache{$msg}) && $msg_cache{$msg} < time-60) {
        # we've logged this message in the last minute - skip
        return;
    }
    $msg_cache{$msg} = time;
    return 1;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM