示例#1
0
        private void SendRecentEvents(Socket socket)
        {
            Queue <TcpAppender.RenderedLoggingEvent> renderedLoggingEvents = new Queue <TcpAppender.RenderedLoggingEvent>(this._recentEvents);

            while (renderedLoggingEvents.Count > 0 && !this._stopWorkerThread)
            {
                try
                {
                    TcpAppender.RenderedLoggingEvent renderedLoggingEvent = renderedLoggingEvents.Dequeue();
                    byte[] bytes = this.Encoding.GetBytes(renderedLoggingEvent.RenderedEvent);
                    socket.Send(bytes);
                } catch (Exception exception1)
                {
                    Exception exception = exception1;
                    this.ErrorHandler.Error(string.Format("Unable to send logging event to RemotingServerAppender at port {0}.", this._localPort), exception, ErrorCode.WriteFailure);
                }
            }
        }
示例#2
0
 private void CleanupRecentEvents()
 {
     if (!this.IsActive)
     {
         return;
     }
     if (this._recentEvents.Count > 0 && (DateTime.Now - this._lastCleanupTime).TotalSeconds > 1)
     {
         this._lastCleanupTime = DateTime.Now;
         DateTime dateTime = this._lastCleanupTime.AddSeconds(-5);
         while (this._recentEvents.Count > 0)
         {
             TcpAppender.RenderedLoggingEvent renderedLoggingEvent = this._recentEvents.Peek();
             if (renderedLoggingEvent != null && dateTime < renderedLoggingEvent.TimeStamp)
             {
                 return;
             }
             this._recentEvents.Dequeue();
         }
     }
 }