예외가 발생하면 메시지 내용을 기록 할 수 있습니까?Rebus에서 오류 메시지 내용을 기록하는 방법?
다양한 로깅 확장 프로그램을 살펴 보았지만 CorrelationId를 로깅합니다. 그리고 메시지 내용을 사용할 수 없습니다.
MessageContext에는 CurrentMessge 속성이 있지만 로그 작성자가 예외를 쓸 때 사용할 수 없습니다.
메시지 내용을 기록 할 수있는 PoisonMessage 이벤트를 처리하려고했습니다.
public static void OnPoisonMessage(IBus bus, ReceivedTransportMessage receivedTransportMessage, Rebus.Bus.PoisonMessageInfo poisonMessageInfo) {
var message = new JsonMessageSerializer().Deserialize(receivedTransportMessage);
Log.Error("{@messageType} failed {@message}", message.Messages[0].GetType(), message);
}
위대한 작품이지만, 이제 로그러에 내 처리기에서 오는 오류와 로거에서 오는 두 가지 오류가 있습니다.
이 요구 사항을 처리하는 더 좋은 방법이 있는지 궁금합니다.
코드의 버그로 인해 메시지가 실패하면 오류 내용과 함께 메시지 내용을보고 컨텍스트를 이해하는 것이 매우 유용합니다. DevOps는 대개 대기열 인프라에 대한 액세스를 제어합니다. 또한 문제를 이해하기 위해 여러 곳을 바라 보는 것의인지 적 부담을 줄여줍니다. – chandmk