2010-04-11 1 views
2

우리는 대부분의 로그를 전용 데이터베이스 테이블에 보관합니다. 우리는 log4j 및 log4net에 대한 사용자 정의 appenders를 작성하고, 많은 유용한 컬럼을 가진 고정 된 로그 스키마를 가지며, 매우 만족합니다.로그 파일을 어디에 보관해야합니까?

단순한 DB 테이블만으로 확장되지 않는 페이스 북보다 규모가 작은 사이트의 경우 "우수 사례"입니까?

답변

1

Linux 기반 웹 서버를 사용한다고 가정하면 로그를 간단한 로그 파일에 기록하고 cron 작업을 통해 파일을 매일 bzip으로 처리하십시오. 파일을 bzcat하여 내용을 가져올 수 있습니다. 동일한 cron 스크립트가 주어진 임계 값보다 오래된 파일을 제거하거나 수동으로 오래된 로그를 제거 할 수 있습니다. 이것은 대부분의 데몬이 syslog를 통해 직접 또는 간접적으로 사용하는 꽤 수용된 체계입니다.

공개적으로 액세스 할 수있는 웹 루트 외부에서 로그 파일을 작성하면 사람들이 로그 파일 이름을 추측하고 잠재적 인 데이터를 다운로드 할 수 있습니다.

+0

왜 이것이 데이터베이스보다 바람직하다고 생각하십니까? 유연성이 떨어집니다. DB 또는 DB와 같은 시스템에 저장하려고 시도한 적이 있습니까? (@shoosh에 대한 내 의견을 참조하십시오) – ripper234

0

데이터베이스 로그는 다른 상자로 쉽게 압축되거나 이동되지 않습니다. 반면에 데이터베이스에서 로그를 검색하는 것은 이점이 있습니다.

현재 솔루션에 대한 걱정이 있습니까? 문제가 없다면 걱정하지 않아도됩니다.

+0

나는 우리의 해결책이 우리를 위해 매우 잘 작동한다는 것을 걱정하지 않습니다. 나는 단지 다른 사람들이 무엇을하고 있었는지 알고 싶었습니다. – ripper234

0

왜 데이터베이스를 사용하고 있습니까? 자주 복잡한 질의를하는 경우가 있습니까? 또는 사용중인 검색어를 grep 검색어로 간단하게 번역 할 수 있습니까?
간단한 텍스트 로그 파일과 DB 테이블 중에서 선택할 때 가장 중요한 질문입니다.

+0

예, 우리는 그들을 귀중한 데이터베이스에 보관하고 있습니다. 날짜 범위, 구성 요소, 로그 수준 등에 대해 선택을 할 수 있습니다. grep을 사용하여이 작업을 수행하는 방법을 알지 못합니다. 스키마의 다른 일부 열은 PID/ThreadID입니다 (다중 스레드 디버깅에 유용함). 우리는 기억할 수없는 몇 가지 다른 칼럼을 가지고 있습니다. – ripper234

관련 문제