문제

나는 그것의 가능한지 궁금합니다 - a) 가능합니다. b) 모범 사례 - 여러 응용 프로그램을 단일 로그 인스턴스에 로그인 하시겠습니까?

몇 가지 ASP.NET 앱이 있으며 엔터프라이즈 대시 보드 앱의 일부로 쿼리 할 수있는 중앙 위치로 모든 예외를 집계하고 싶습니다. EL 로깅 블록과 EL 예외 블로그와 데이터베이스 추적 리스너와 함께 사용하고 있습니다. 모든 앱에서 단일 DB에 로그인 한 예외를보고 싶습니다.

모든 의견, 모범 사례 가이드 라인 또는 답변은 매우 환영합니다.

도움이 되었습니까?

해결책

예, EL을 사용하여 중앙 위치에 여러 응용 프로그램 로그를 저장할 수 있습니다.

응용 프로그램 및 계층 간의 예외를 볼 수있는 엔터프라이즈 대시 보드 응용 프로그램은 로깅을 중앙 집중화하는 가장 큰 이유입니다. 그래서 나는 질문 B도 말할 것입니다.

가능한 문제/네거티브

귀하의 질문에서이를 언급하기 때문에 데이터베이스 추적 리스너를 사용하고 있다고 가정합니다. (잠재적으로 큰) 로그 데이터베이스를 쿼리하는 사용자와 결합 된 많은 수의 로그 항목을 기록하는 많은 응용 프로그램이있는 경우 (로깅이 동시에 수행되므로) 응용 프로그램 성능에 영향을 줄 수있는 성능이 저하 될 가능성이 있습니다.

또 다른 접근법

이 가능성에 맞서기 위해 나는 조사 할 것이다 유통 업체 서비스 사용 비동기로 기록합니다. 이 모델에서 모든 응용 프로그램은 메시지 대기열에 로그인합니다 (MSMQ 추적 리스너 사용). 그런 다음 별도의 서비스가 대기열을 폴링하고 로그 항목을 추적 리스너 (경우에는 데이터베이스 추적 리스너)로 전달하여 대시 보드 데이터베이스의 메시지를 지속합니다. 이 설정 ~이다 더 복잡한. 그러나 그것은 당신이 달성하려는 것과 일치하는 것처럼 보이며 대시 보드 데이터베이스가 다운 되어도 (예 : 유지 보수를 위해)에 있어도 비동기 처리 및 로그인하는 기능과 같은 다른 이점이 있습니다.

다른 고려 사항

응용 프로그램에서 일부 로그 entry 속성을 표준화하는 것에 대해 생각할 수도 있습니다. 예를 들어 Logentry에는 실제로 "응용 프로그램"속성이 없으므로 응용 프로그램 이름을 나타 내기 위해 ExtendedProperty를 추가 할 수 있습니다. 또는 메시지에서 다양한 정보를 철수하고 쉽게 검색하고 분류 할 수 있도록 별도의 데이터베이스 열에 저장할 수 있도록 메시지 속성의 특정 형식으로 표준화 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top