public LogMessage(LogMessage copyMessage)
 {
    this.message = copyMessage.message;
    this.tag = copyMessage.tag;
    this.level = copyMessage.level;
    this.timestamp = copyMessage.timestamp;
    this.loggedBy = new HashSet<LoggerType>(copyMessage.loggedBy);
 }
      public void BufferFileMessage(LogMessage message)
      {
         lock (messageLock)
         {
            fileBuffer.Enqueue(messages.Peek());

            //If our file buffer gets too large to even consider, it's probably
            //because we can't log to the file. Just throw out everything
            if (fileBuffer.Count > MaxFileBuffer)
               fileBuffer.Clear();
         }
      }