/// <summary> /// Logs the outgoing request. /// </summary> /// <param name="request"></param> /// <param name="channel"></param> /// <returns></returns> public object BeforeSendRequest(ref Message request, IClientChannel channel) { if (logger.IsInfoEnabled) { string correlationId = ObtainCorrelationId(request); using (logger.ThreadStacks["NDC"].Push(correlationId)) { logger.Info("Sending request to {0}", channel.RemoteAddress); LogMessageContents(ref request); } return(correlationId); } return(null); }
private void LogMessageContents(ref Message message) { var buffer = message.CreateBufferedCopy(int.MaxValue); var forLogging = buffer.CreateMessage(); message = buffer.CreateMessage(); var content = string.Format(formatter, String.Format("{{0:{0}}}", format), forLogging); logger.Info(content); }