2010-01-04 3 views
4

우리 회사 전체에 걸쳐 진단 목적으로 활동을 텍스트 파일에 기록하는 많은 응용 프로그램이 있습니다. 일반적으로 무언가가 실패하거나 중단되면 전자 메일 알림을 보내 팀에 문제를 알립니다. 또한 응용 프로그램이 예상보다 오래 작동하지 않을 때 이메일을 통해 팀에 알리는 모니터링 응용 프로그램이 있습니다. 우리가 직면 한 문제는 로그가 잡음으로 전이되어 실패와 성공에 대한 빠른 정보를 제공하지 못한다는 것입니다. 현재 내 질문에 이르게하는 기업의 응용 프로그램의 일반적인 아키텍처에 대한 솔루션을 모색 중입니다."잡음이 많은"로깅 문제

간결한 로깅 정보를 신속하게 제공 할 수있는 일반적인 접근 방식, 기술 및 가능한 프레임 워크는 무엇입니까? 볼 수 있고 읽을 수있는가?

답변

5

Log4J 및 기타 로깅 프레임 워크는 각 로그 문에 우선 순위를 지정하는 로그 수준 개념을 제공합니다. 그런 다음 런타임에 로그 파일 자체의 수준을 설정합니다. 우선 순위가 높은 로그 문만 통과합니다. 예를 들어 프로덕션 시스템이 WARN 또는 ERROR 수준의 메시지 만 기록하도록 설정하는 반면 개발 환경은 DEBUG 이상에서 아무것도 기록하도록 설정할 수 있습니다.

코드를 변경하지 않고도 (새로운 빌드마다 로그 명령문을 추가/제거하는 등) 디버깅과 같은 작업을 수행해야 할 때 (일시적으로) 쉽게 재구성 할 수 있기 때문에 좋은 해결책입니다. 특정 문제.

시스템에서 .NET 아키텍처를 사용하는 경우 log4net이라는 포트를 사용할 수 있습니다 (기존 시스템을 바꾸면 코드가 변경되어야 함). 그러나이 질문은 일반적인 디자인 원칙에 관한 것이지 기존 코드베이스로 할 일에 대한 것이 아니기 때문에이 답변으로 충분하다고 생각합니다.

편집 : 새로운 프레임 워크를 사용하여 고급 프레임 워크를 사용할 수 있으므로 this page에는 대체 목록이 있습니다. Java 응용 프로그램에서 내 자신의 사용으로 인해 log4j의 일부분을 차지하고 있습니다.

+0

그래, 분명히 코드를 변경 한 것입니다. 나는 새로운 서비스를 작성하려고하고 있으며, 새로운 로깅 접근법에 대한 "좋은"데모가되기를 원합니다. 앞으로 팀을 구현할 수 있기를 바랍니다. – Achilles

0

작고 빠른 대답, 모든 내부 제품처럼 보이기 때문에 데이터베이스를 만들고 모든 것을 기록한 다음 해당 데이터베이스를 쿼리하는 소프트웨어를 만들어 이메일 정보 만 제공하십시오.

1

나는 log4net을 추천합니다. 당신은 그것의 주위에 자신의 워퍼를 만들어야 할 수도 있습니다.

0

여러 로그를 상호 연관시키려는 경우 Splunk를 꼭 살펴볼 가치가 있습니다.

응용 프로그램 로그 데이터를보다 쉽게 ​​액세스하고 해석하기 쉽게하려면 Gibraltar을 살펴보십시오.

지브롤터에는 수천 개의 로그에서 패턴을 볼 수있는 강력한 로그 분석 도구가 포함되어 있습니다. 자체 로깅 API가 포함되어 있지만 log4net, NLog, ObjectGuy의 DotNetLog 및 .NET System.Diagnostics 네임 스페이스의 Trace/Console 클래스와 같은 널리 사용되는 로깅 프레임 워크에서도 작동합니다.