namespace StardewModdingAPI { /// Encapsulates monitoring and logging for a given module. public interface IMonitor { /********* ** Accessors *********/ /// Whether SMAPI is aborting. Mods don't need to worry about this unless they have background tasks. bool IsExiting { get; } /// Whether verbose logging is enabled. This enables more detailed diagnostic messages than are normally needed. bool IsVerbose { get; } /********* ** Methods *********/ /// Log a message for the player or developer. /// The message to log. /// The log severity level. void Log(string message, LogLevel level = LogLevel.Trace); /// Log a message that only appears when is enabled. /// The message to log. void VerboseLog(string message); /// Immediately exit the game without saving. This should only be invoked when an irrecoverable fatal error happens that risks save corruption or game-breaking bugs. /// The reason for the shutdown. void ExitGameImmediately(string reason); } }