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(); } }
public override void SetUp() { syslogMessage = new SyslogMessage("test-machine", "test-facility", Severity.Debug, DateTime.Now, "test-tag", "test-message"); base.SetUp(); }