using System; using System.Collections.Generic; using System.Linq; using System.Diagnostics; using System.Text; namespace PatcherServer.Helper { public class LogHelper : TraceListener { public static void Initialize() { Instance = new LogHelper(); } public LogHelper() { Messages = new List(); } public EventHandler LogEvent; public override void Write(string message) { WriteLine(message); } public override void WriteLine(string message) { if (LogEvent != null) { LogEvent(this, new LogEventArgs(message)); } Messages.Add(message); CheckForOverflow(); } private void CheckForOverflow() { if (Messages.Count > MAXLOGCOUNT) { Messages.RemoveRange(0, Messages.Count - MAXLOGCOUNT); } } public static LogHelper Instance { get; private set; } public List Messages { get; private set; } private const int MAXLOGCOUNT = 20; } public class LogEventArgs : EventArgs { public LogEventArgs(string message) { this.Message = message; } public string Message { get; private set; } } }