Пример #1
0
        /// <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);
        }
Пример #2
0
        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);
        }