我從日誌中提取例外,這裏是一個示例:比較字符串和比較他們如何密切配合
異常:System.InvalidOperationException:集合已修改;枚舉操作可能不會執行。 at System.Collections.Generic.List`1.Enumerator.MoveNextRare() at test.Modules.UI.Table。 <> C_ DisplayClass2.b _0() 在System.Win
有時日誌是在不同的語言,所以它看起來是這樣的:
異常:System.InvalidOperationException:拉COLECCION FUE修訂於,LA operacióndeenumeraciónno puede ejecutar。 at Test.Modules.UI.Table的System.Collections.Generic.List`1.Enumerator.MoveNextRare() 。 <> C_ DisplayClass2.b _0() 在System.Win
正如你可以看到只有該異常部分不同,因爲其在不同的語言,但之後的部分將是相同的。我有所有這些例外存儲在一個數據庫中,所有修剪長度爲300個字符,因爲通常長得多,但300個字符足以告訴是否存在相同或不存在
所以我想也許跳過例外,並比較接下來的300個字符,但它很難知道異常結束的地方,沒有任何具體的東西顯示異常的開始和結束。
任何想法,我可以克服這一點?也許我只是使用Levenshtein來突出顯示哪裏有近距離匹配,然後我可以過濾這些,也許設置一個接口,允許我連接異常,一旦我手動識別那裏有不同的語言寫在同一個異常?
我的最終目標是審查數以千計的這些日誌,看看有多少例外是相同的,大多數日誌是英語但可能有25%是非英語的,所以通常我可以運行一個查詢完全匹配異常,因爲異常部分的語言不同,可能只有60-70%的匹配。可能有極個別情況下的異常之後的部分是接近匹配到不同的異常,但是這將是難得這麼沒有太多關注
我需要做到這一點在PHP
你確定所有異常都不以冒號結尾嗎? – Cups