using UnityEngine; namespace AutoGroupGenerator { /// /// Logger that filters editor messages by configured verbosity. /// public class Logger { #region Fields private readonly DataContainer m_DataContainer; #endregion #region Methods /// /// Initializes a new logger for the provided data container. /// /// The data container that supplies settings. public Logger(DataContainer dataContainer) { m_DataContainer = dataContainer; } /// /// Logs a message at the specified log level. /// /// The object issuing the log. /// The log level for the message. /// The message to log. public void Log(object invoker, LogLevelID logLevel, string message) { if (m_DataContainer.Settings == null) { Debug.LogError($"Log failed! Settings = null!"); return; } if (logLevel == LogLevelID.OnlyErrors) { Debug.LogError($"{invoker.GetType().Name}: {message}"); return; } if (logLevel <= m_DataContainer.Settings.LogLevel) { Debug.Log($"{invoker.GetType().Name}: {message}"); } } /// /// Logs an error message. /// /// The object issuing the log. /// The message to log. public void LogError(object invoker, string message) { Log(invoker, LogLevelID.OnlyErrors, message); } /// /// Logs an informational message. /// /// The object issuing the log. /// The message to log. public void LogInfo(object invoker, string message) { Log(invoker, LogLevelID.Info, message); } /// /// Logs a developer-level diagnostic message. /// /// The object issuing the log. /// The message to log. public void LogDev(object invoker, string message) { Log(invoker, LogLevelID.Developer, message); } #endregion } }