2012-11-03 4 views
0

내가 로그에서 예외를 추출 일치 얼마나 가까운 비교 :문자열을 비교하고 여기에 하나의 예입니다,

예외 : System.InvalidOperationException : 컬렉션이 수정; 열거 연산이 실행되지 않을 수 있습니다. at System.Collections.Generic.List`1.Enumerator.MoveNextRare() at test.Modules.UI.Table.

예외 : System.InvalidOperationException : 라 colección의 FUE의 modificada, 라이 같이 있도록 <> C_ DisplayClass2.b _0()

System.Win

에서 때때로 로그는 다른 언어에 enumeración 아니오 puede ejecutar. at System.Collections.Generic.List`1.Enumerator.MoveNextRare() at Test.Modules.UI.Table. <> C_ DisplayClass2.b _0()는 System.Win

에서 볼 수 있듯이 만 제외한 부분으로 차이는 다른 언어뿐만 후의 부분은 동일 할 것이다. 나는이 모든 예외를 데이터베이스에 저장했습니다. 길이가 300 자 이상으로 길어 지지만 길이는 300 자로 제한됩니다. 동일하거나 다른지 확인하는 데는 충분합니다.

그래서 예외를 건너 뛰고 그 다음 300 문자는 예외가 끝나는 곳을 알기가 극도로 어려워지고 예외의 시작과 끝을 표시하는 특정 것은 없습니다.

어떻게하면이 문제를 해결할 수 있습니까? 어쩌면 그냥 Levenshtein을 사용하여 거기에 가까운 일치하는 부분을 강조 표시 한 다음 필터를 걸 수 있고 다른 언어로 작성된 동일한 예외를 수동으로 식별하면 예외를 연결할 수있는 인터페이스를 설정할 수 있습니다.

내 목표는 수천 개의 로그를 검토하여 동일한 예외가 얼마나 많은지 확인하는 것입니다. 대부분의 로그는 영어이지만 어쩌면 25 %는 영어가 아니므로 일반적으로 예외 부분에 대한 언어가 다르므로 아마 60-70 % 일치 일 것입니다. 이 예외 이후의 부분은 다른 예외에 일치에 가까운 드문 경우가 될 수도 있지만 그

내가 PHP

+0

모든 예외가 콜론으로 끝나지 않습니까? – Cups

답변

0

100 % 강력한에서이 작업을 수행 할 필요가 우려 너무 너무 많이하지 드문 것 두 번째 세미콜론 앞에있는 텍스트와 단어 at 다음에 나오는 텍스트를 기반으로 일치시킬 수 있습니다. 단어 at 다음에 새 줄이 올 것이므로 단어 + 새 줄은 예외 메시지 자체에 표시되지 않을 것입니다 (구분 기호로 알맞은 선택이됩니다).

당신이 계획 한 어떤 계획이라도 예외 메시지를 완전히 무시하고 싶습니다. 언어 간 공통적 인 구조를 찾지 않으므로 텍스트 메시지를 일치하는 순위에 포함 시키면 일치의 신뢰도 만 떨어집니다.

관련 문제