2013-02-14 6 views
0

안녕하세요 여러분, 저는 일주일 정도 지나서이 작업을 시도해 왔습니다. 그러나 방법을 찾아 내지 마십시오. 나는 tomcats와 함께 일하고 내 고객은 정기적으로 저에게 2 ~ 3GB의 로그 파일을 보내는데, 파일이 발견되지 않는 등의 문제가 있다고합니다. 로그 파일을 통해 grep에 적절한 정보를 얻지 못하는 경우가 있습니다. 그래서 모든 로그 파일을 구문 분석 할 수있는 도구를 작성하여 그에 따라 로그를 분류 할 수 있습니다. 이제 4GB의 데이터를 메모리에 저장할 수 없으며 4GB를 읽는 데 많은 시간이 걸리기 때문에 파일에 다시 넣을 수 없습니다. 파일 채널과 스레드를 사용하고 있지만. 데이터베이스는 시스템을 다시 느리게 할 것이기 때문에 확실히 옵션이 아닙니다. 그래서 나는 내가 404 에러를 체크하고 싶을 때마다리스트에 404 에러를 모두 가져야한다는 것을 파싱 된 내용을 저장하는 다른 방법이 있는지 알고 싶다.Tomcat 로그 파일 구문 분석

데이터베이스를 사용하고 싶지 않습니다. 그래서 데이터베이스는 확실히 이것에 대한 해답이 아닙니다.

+1

동시에 두 스트림을 동시에 읽고 쓰지 않는 이유는 무엇입니까? – Andremoniy

+1

데이터를 읽고 구문 분석하는 데 20 분이 걸립니다. 동시에 스트리밍을하면 시스템 속도가 느려집니다. 각 검색에 대해 다시로드 및 구문 분석 – user2071270

+0

Nop. 전체 파일을 메모리에로드 할 필요가 없습니다. 한 줄씩 읽으십시오. 필요한 정보가 발견되면 즉시 다른 파일에 기록하십시오. – Andremoniy

답변

0

당신은 아파치 루씬을 사용할 수 있습니다. 파일을 척으로 나누기 위해 nio 파일 핸들러를 사용하고 인덱싱 및 텍스트 검색에 Apache lucene을 사용하십시오. 이 방법은 전체 문제를 해결하지 못할 수도 있지만 데이터베이스를 사용하지 않으려는 경우 더 나은 솔루션입니다.

+0

도움을 주셔서 감사합니다. – user2071270

2

"데이터베이스를 사용 하시겠습니까"여부는 중요하지 않습니다. 기본적으로 데이터 그래프를 작성하는 것입니다. 이것은 데이터베이스가 설계된 것입니다. 이제는 다른 사람이 작성한 것을 사용하도록 선택할 수 있으며 널리 테스트되거나 자신의 롤을 선택할 수 있습니다. 어느 쪽이든 원하는대로 데이터베이스를 사용하고 있습니다.

Maven에서 잘 작동하는 가볍고 임베디드가 가능하며 성능이 우수한 문서/그래프 "No SQL"데이터베이스를 원한다면 OrientDB는 친구이며 매우 직관적입니다. 또한 필요에 따라 인 메모리 데이터베이스, 파일 기반 데이터베이스 또는보다 전통적인 클라이언트/서버 솔루션을 사용할지 여부를 선택할 수 있습니다. 가장 중요한 부분은 Object 추상화 계층을 가지고 있으므로 ORM 프레임 워크를 망칠 필요조차 없습니다.

정말 시도해야합니다. 그것은 당신의 모든 고통을 사라지게 할 것입니다.

Linky는 : http://www.orientdb.org/