コード例 #1
0
 public void Enqueue(ISyslogMessage message)
 {
     this.rwLock.EnterWriteLock();
     try
     {
         this.messageQueue.Add(message);
         if (this.messageQueue.Count > this.messageLimit)
         {
             List <ISyslogMessage> messagesToSave = new List <ISyslogMessage>();
             this.messageQueue.Sort((x, y) => y.Timestamp.CompareTo(x.Timestamp));
             for (int i = 0; i < this.flushNum; i++)
             {
                 if (this.messageQueue[this.messageQueue.Count - 1].IsDirty)
                 {
                     messagesToSave.Add(this.messageQueue[this.messageQueue.Count - 1]);
                 }
                 this.messageQueue.RemoveAt(this.messageQueue.Count - 1);
             }
             //store removed messages
             foreach (IStorage handler in this.storageHandlers)
             {
                 handler.Save(messagesToSave);
             }
         }
     }
     finally
     {
         this.rwLock.ExitWriteLock();
     }
 }
コード例 #2
0
 public override void SetUp()
 {
     syslogMessage = new SyslogMessage("test-machine", "test-facility", Severity.Debug, DateTime.Now, "test-tag", "test-message");
     base.SetUp();
 }