2009-07-02 5 views
2

웹 응용 프로그램에 대한 로그를 최소화하는 방법에 대한 조언이있는 사람이 있습니까?웹 응용 프로그램의 중복 로그 메시지를 줄이는 방법은 무엇입니까?

지금 당장 모든 오류가 기록됩니다. 따라서 모든 요청 (예 : db 연결 문제)에 오류가 발생하는 경우 모든 요청마다 모든 사용자에 대해 기록 될 수 있습니다. 상상할 수 있듯이 너무 많은 사용자가 너무 많은 작업을 수행하여 중복 로그 오류가있는 거대한 로그 파일을 축적하지 않습니다.

N 분 내에 같은 오류를 기록하지 않는 일부 유형의 플래그 지정 메커니즘을 만드는 것이 나에게 발생했습니다. 나는 2 가지 이유 때문에 이것을 좋아하지 않는다. 1) 다른 사람들 사이에서 가장 중요한 문제를 숨길 수 있으며, 2) 계단식 오류로 인해 이전에 기록 된 오류를 생략하고 오류 진단을 제대로 기록하지 못할 수 있습니다.

나는이 문제가있는 사람이 처음이라고 확신하지 못한다. 아무도 웹 앱의 중복 로그 메시지를 줄이는 방법에 대해 조언하지 않습니까?

+0

어떤 로깅 프레임 워크를 사용하고 있습니까? log4net, ELMAH, 자체 개발 한 엔터프라이즈? –

+0

@ Dillie-O-Homegrown. 그러나 나는 기꺼이 전환 할 것입니다. 로깅 프레임 워크가이 문제를 해결할 것이라고 제안하고 있습니까? –

답변

0

내 사용자 오류 메시지를 결합, 그래서 때 오류 메시지가 일치 할 때마다 사용자가 표시되면 클릭하거나 확인 또는 지원으로 보낼 수 있습니다. 그런 다음 complete error, call stack, & 요청 정보가 버그 트래커에 입력됩니다.

아직 출시되지 않았으므로 아직 좋은 아이디어인지는 아직 알지 못했습니다 ... 계속 게시됩니다.

PS- 나는 다른 질문이 내 요구를 충족시키지 못했기 때문에 내 자신의 질문에 대답하여 대답했습니다.

2

DB에 기록하고 개별 항목을 기록할지 또는 기본 로그 항목에 카운터를 집계할지 여부를 결정하는 플래그를 설정할 수 있습니다. 집계하면 전체 오류 수가 표시되지만 폭발하는 로그 파일은 없습니다.

+0

감사합니다. 좋은 생각인데 텍스트 파일에 로그인하는 것이 좋습니다. –

1

로그에 넣으려는 오류와 마지막 항목을 비교해보십시오. 동일한 유형 및 소스 인 경우 끝에 "(n 번 반복)"문자열을 추가하십시오.

로거는 문자열을보고 오류가 오류의 또 다른 유형이 들어올 때까지이 N을 증가시킬 수있다.

+0

감사합니다. 나는 그걸 생각했지만, 나는 로그를 '읽는'것에 빠지기를 원하지 않는다. –

+0

그래, 아마도 "쓰기 전용"로깅을하는 것이 더 좋을지 모르지만, 리눅스는 syslog-ng에서 그렇게한다./var/log의 몇 군데에서 "마지막 메시지가 n 번 반복 된"것을 보았습니다. – macbirdie

+0

@ macbirdie- 글쎄, 당신은 귀하의 애플 리케이션에서 실행 횟수를 유지하고 그것을 다시 설정할 수 있습니다. 그러나 그것은 여전히 ​​당신의 로그에 라인을 추가하고 있습니다 .... .... 당신이 로그 할 수 있다고 가정하고, 메모리에 실행 횟수를 유지하고 다음 로그 메시지 전에 "마지막 메시지가 n 번 반복되었습니다"라고 추가하십시오. 이것은 작동 할 것입니다! +1 –

1

의견에 대한 질문에 대답하려면이 유형의 기능을 포괄하는 상자 솔루션이 없다는 사실을 알고 있어야합니다.

고려해야 할 또 다른 아이디어는 시스템의 각 오류 로깅 지점에 ID를 할당하는 것입니다.이 시점에서 자신의 답을 수락했습니다. 오류가 기록되면 오류 Id 및 오류가 기록 된 시간의 간단한 해시 테이블을 유지할 수 있습니다. 그런 다음 로깅을 처리 할 때 해시에 이미 오류가 있고 5 분 내에 (또는 사용자가 결정한 시간에) 오류가 발생하면 로깅을 중단하고 타임 스탬프를 업데이트 할 수 있습니다.

사용자가 오류 메시지 요청을 보내면 모든 사용자가 메시지를 제출할 때 오류 로그와 동일하므로받은 편지함 만 플러딩되므로 문제가 해결되는지 확신 할 수 없습니다. 단순히 로그 파일 자체를 모니터링하는 것과는 대조적입니다.

+0

"사용자가 오류 메시지 요청을 보내면 문제가 해결 될지 확실하지 않습니다."- 사용자가 처음으로 보내면 어떻게 될지 기대하고 있습니다. 그런 다음 전송을 중단하십시오. 내가 말했듯이, 나는 희망이있다. 그러나 우리는 볼 것이다. ;-) –

+0

흠, 오류 화면에 "한번만 보낸다면 이걸 닫아라"라고 말하면 어떨까요? 그 효과? 전자 메일 조항에 도움이 될 수 있습니다. 어리석은 것처럼 들리지만 실제로 키보드의 다른쪽에 누가 있는지 알 수 없습니다. 8^D –

+0

흠 .. 좋은 지적. –

관련 문제