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);
}
}