다양한 응용 프로그램의 로그를 배포하기 위해 Enterprise Library 3.1의 Msmqdistributor 서비스를 사용하고 있습니다. categorySources/specialSources에 여러 리스너를 정의했지만 하나의 리스너가있는 경우 후속 청취자보다 실패하면 결코 실행되지 않습니다.엔터프라이즈 라이브러리 3.1 - 하나의 리스너가 실패한 경우 후속 리스너가 실행되지 않습니다.
다음은 설정 코드입니다.
<specialSources>
<allEvents switchValue="Warning" name="All Events">
<listeners>
<add name="Database Listener A" />
<add name="Custom Trace Listener A" />
<add name="Custom Trace Listener B" />
</listeners>
</allEvents>
<notProcessed switchValue="Warning" name="Unprocessed Category" />
<errors switchValue="Warning" name="Logging Errors & Warnings"/>
</specialSources>
것은 그때가 데이터베이스에 로그를 삽입하는 데 실패합니다 데이터베이스 리스너에 대한 잘못된 연결 문자열을 지정하고있는 경우. 그러나 사용자 정의 추적 리스너 A 및 사용자 정의 추적 리스너 B. 여기서 사용자 정의 추적 리스너 A 및 사용자 정의 추적 리스너 B는 데이터베이스 수신기 A에 실패한 경우 절대로 실행되지 않습니다.
아무도 도와 드릴 수 있습니까?
감사 Mitesh 파텔
안녕하세요, Tuzo, 답장을 보내 주셔서 감사합니다. 그러나 현재의 요구 사항에서 Listener의 예외를 억제하고 후속 Listeners.I에서 계속 진행합니다. 내장 리스너이기 때문에 Database Listener에서 예외를 삼킬 수 없습니다. 또한 어떤 예외에 대해서도의 에 리스너를 지정할 수 있지만 여기에서도 같은 상황이 발생합니다. –
mit
@ user988917 : 예, 데이터베이스 리스너를 사용할 수 없다는 것을 알고 있습니다. 그래서 내가 마지막에 넣는 것이 좋습니다. EL 소스에서 자신 만의 데이터베이스 리스너를 생성 한 다음 거기에 던져 넣지 않아도됩니다. 물론, 문제가 있다는 것을 알기 위해 어떻게 든 그 실패를 캡쳐하고 기록하기를 원할 것입니다. –
Tuzo에게 다시 한 번 감사드립니다. 하지만 모든 청취자가 원하는 경우 오류가 발생하면 오류가 표시되지 않습니다. LogSource 및 LogWriter의 상속 클래스를 상속 받아 솔루션을 얻었습니다. – mit