using System; using System.Collections.Generic; namespace SlatedGameToolkit.Framework.Logging { public static class Logger { private static HashSet listeners = new HashSet(); /// /// Logs the message to listeners that are listening to the set severity of the message or greater. /// /// The message to log. /// The level of severity, by default, info. public static void Log(string message, LogLevel level = LogLevel.INFO) { foreach (ILogListener listener in listeners) { if (level <= listener.Level) { listener.LogMessage(message, DateTime.Now, level); } } } /// /// Adds a log listener. /// /// The listener to add. public static void AddLogListener(ILogListener listener) { listeners.Add(listener); } /// /// Removes a log listener. /// /// The listener to remove. public static void RemoveLogListener(ILogListener listener) { listeners.Remove(listener); } /// /// Called when all listeners should perform any flushing they need. /// public static void FlushListeners() { } } }