2014-01-16 3 views
0

원격 컴퓨터에서 로그 파일 (Log4j)을 다운로드했습니다. 내 요구 사항은 이러한 파일의 내용을 mongodb에 저장하는 것입니다. 스키마가 적은 데이터 저장소이므로 mongodb를 선택하므로 로그 데이터를 저장하는 데 이상적입니다. 내 쿼리는 json 문서로 로그 데이터를 변환하고 mongodb에 저장하는 방법입니다. 정규식을 기반으로 각 로그 항목을 분할하고 객체에 저장 한 다음 mongo에 저장하지만 더 좋은 방법이 있다고 생각합니다. 여기에서 말하는 로그 파일은 max입니다. 50MB 크기. 소독 한 로그 파일처럼 보일 것입니다 방법이 :MongoDB에 저장하기 위해 로그 데이터를 json 문서로 변환합니다.

2014-01-11T17:18:52.656260-08:00 localhost local0: Localhost 17:18:52.655 [INFO ] [..... | Timer-1 ] - asldknluenfbayewbfayewbdaiybdaiywbayhwbdsaas
2014-01-11T13:18:52.657649-08:00 localhost local0: Localhost 17:18:52.657 [INFO ] [..... | Timer-1 ] - dasdasldukjbfksbdfkajsnbdkasaasdasdasdasdasd
2014-01-11T13:18:52.659029-08:00 localhost local0: Localhost 17:18:52.658 [WARN ] [..... | Timer-1 ] - fjdshfaushdaksbdkasudhaksudbaksdbaksdasdasd
2014-01-11T56:18:52.661312-08:00 localhost local0: Localhost 17:18:52.660 [INFO ] [..... | Timer-1 ] - java.util.ConcurrentModificationException at java.util.LinkedHashMap$LinkedHashIterator.nextEntry(LinkedHashMap.java:365) at java.util.LinkedHashMap$KeyIterator.next(LinkedHashMap.java:376) at java.util.AbstractCollection.toArray(AbstractCollection.java:126) at java.util.ArrayList.addAll(ArrayList.java:473) at a.b.c.etc.SomeWrapper.rebuild(SomeWraper.java:109) at a.b.c.etc.SomeCaller.updateCache(SomeCaller.java:421)
2014-01-11T17:18:52.661751-08:00 localhost local0: Localhost 17:18:52.661 [FATAL] [..... | Timer-1 ] - sdfsdfsdfsdfsdfsdfsdfsasdasdasdasdasdasdasd
2014-01-11T17:18:52.663283-08:00 localhost local0: Localhost 17:18:52.662 [ERROR] [..... | Timer-1 ] - sdasdasdasdas

내가 날짜 범위를 기반으로 데이터를 쿼리 및 수준을 기록 할 것, 따라서이 내가에 필드와 함께 원하는 것이 두 필드는 데이터를 보유하십시오. 모든 의견/도움을 주시면 감사하겠습니다.

+0

[Log4j 로그 파일 분석] (http://stackoverflow.com/questions/2327073)의 일부 중복. 나는'log4j' 출력을 파싱 할 라이브러리 나 템플릿을 찾고 있다고 생각합니다. (그 후에 파싱 된 결과를 MongoDB에 저장하는 것이 간단해야합니다.) 데이터를 쿼리하는 것에 대한 귀하의 의견은 스키마 디자인 및 인덱싱에 대한 두 번째 질문을 제시합니다. 생각하고있는 스키마 접근 방식의 예, 일반적인 쿼리 및 적합한 인덱스를 정의했는지 여부를 별도로 게시하고 싶을 것입니다. – Stennie

답변

관련 문제