-
Notifications
You must be signed in to change notification settings - Fork 61
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
v-23. Loggable abstract class lets you make any class a loggable clas…
…s! Defaulting to true for IsCurrent so that mods that don't implement version checking don't always is they have a new version. Added non-string versions of Logging methods.
- Loading branch information
Showing
8 changed files
with
229 additions
and
86 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
namespace Modding | ||
{ | ||
/// <summary> | ||
/// Logging Utility | ||
/// </summary> | ||
public interface ILogger | ||
{ | ||
/// <summary> | ||
/// Log at the info level. Includes the Mod's name in the output. | ||
/// </summary> | ||
/// <param name="message">Message to log</param> | ||
void Log(string message); | ||
|
||
/// <summary> | ||
/// Log at the info level. Includes the Mod's name in the output. | ||
/// </summary> | ||
/// <param name="message">Message to log</param> | ||
void Log(object message); | ||
|
||
/// <summary> | ||
/// Log at the debug level. Includes the Mod's name in the output. | ||
/// </summary> | ||
/// <param name="message">Message to log</param> | ||
void LogDebug(string message); | ||
|
||
/// <summary> | ||
/// Log at the debug level. Includes the Mod's name in the output. | ||
/// </summary> | ||
/// <param name="message">Message to log</param> | ||
void LogDebug(object message); | ||
|
||
/// <summary> | ||
/// Log at the error level. Includes the Mod's name in the output. | ||
/// </summary> | ||
/// <param name="message">Message to log</param> | ||
void LogError(string message); | ||
|
||
/// <summary> | ||
/// Log at the error level. Includes the Mod's name in the output. | ||
/// </summary> | ||
/// <param name="message">Message to log</param> | ||
void LogError(object message); | ||
|
||
/// <summary> | ||
/// Log at the fine level. Includes the Mod's name in the output. | ||
/// </summary> | ||
/// <param name="message">Message to log</param> | ||
void LogFine(string message); | ||
|
||
/// <summary> | ||
/// Log at the fine level. Includes the Mod's name in the output. | ||
/// </summary> | ||
/// <param name="message">Message to log</param> | ||
void LogFine(object message); | ||
|
||
/// <summary> | ||
/// Log at the warn level. Includes the Mod's name in the output. | ||
/// </summary> | ||
/// <param name="message">Message to log</param> | ||
void LogWarn(string message); | ||
|
||
/// <summary> | ||
/// Log at the warn level. Includes the Mod's name in the output. | ||
/// </summary> | ||
/// <param name="message">Message to log</param> | ||
void LogWarn(object message); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,103 @@ | ||
namespace Modding | ||
{ | ||
/// <inheritdoc /> | ||
/// <summary> | ||
/// Base class that allows other classes to have context specific logging | ||
/// </summary> | ||
public abstract class Loggable : ILogger | ||
{ | ||
private readonly string _name; | ||
|
||
/// <summary> | ||
/// Basic setup for Loggable. | ||
/// </summary> | ||
protected Loggable() | ||
{ | ||
_name = GetType().Name; | ||
} | ||
|
||
/// <inheritdoc /> | ||
/// <summary> | ||
/// Log at the fine/detailed level. Includes the Mod's name in the output. | ||
/// </summary> | ||
/// <param name="message">Message to log</param> | ||
public void LogFine(string message) => Logger.LogFine(FormatLogMessage(message)); | ||
|
||
/// <inheritdoc /> | ||
/// <summary> | ||
/// Log at the fine/detailed level. Includes the Mod's name in the output. | ||
/// </summary> | ||
/// <param name="message">Message to log</param> | ||
public void LogFine(object message) => Logger.LogFine(FormatLogMessage(message)); | ||
|
||
/// <inheritdoc /> | ||
/// <summary> | ||
/// Log at the debug level. Includes the Mod's name in the output. | ||
/// </summary> | ||
/// <param name="message">Message to log</param> | ||
public void LogDebug(string message) => Logger.LogDebug(FormatLogMessage(message)); | ||
|
||
/// <inheritdoc /> | ||
/// <summary> | ||
/// Log at the debug level. Includes the Mod's name in the output. | ||
/// </summary> | ||
/// <param name="message">Message to log</param> | ||
public void LogDebug(object message) => Logger.LogDebug(FormatLogMessage(message)); | ||
|
||
/// <inheritdoc /> | ||
/// <summary> | ||
/// Log at the info level. Includes the Mod's name in the output. | ||
/// </summary> | ||
/// <param name="message">Message to log</param> | ||
public void Log(string message) => Logger.Log(FormatLogMessage(message)); | ||
|
||
/// <inheritdoc /> | ||
/// <summary> | ||
/// Log at the info level. Includes the Mod's name in the output. | ||
/// </summary> | ||
/// <param name="message">Message to log</param> | ||
public void Log(object message) => Logger.Log(FormatLogMessage(message)); | ||
|
||
/// <inheritdoc /> | ||
/// <summary> | ||
/// Log at the warn level. Includes the Mod's name in the output. | ||
/// </summary> | ||
/// <param name="message">Message to log</param> | ||
public void LogWarn(string message) => Logger.LogWarn(FormatLogMessage(message)); | ||
|
||
/// <inheritdoc /> | ||
/// <summary> | ||
/// Log at the warn level. Includes the Mod's name in the output. | ||
/// </summary> | ||
/// <param name="message">Message to log</param> | ||
public void LogWarn(object message) => Logger.LogWarn(FormatLogMessage(message)); | ||
|
||
/// <inheritdoc /> | ||
/// <summary> | ||
/// Log at the error level. Includes the Mod's name in the output. | ||
/// </summary> | ||
/// <param name="message">Message to log</param> | ||
public void LogError(string message) => Logger.LogError(FormatLogMessage(message)); | ||
|
||
/// <inheritdoc /> | ||
/// <summary> | ||
/// Log at the error level. Includes the Mod's name in the output. | ||
/// </summary> | ||
/// <param name="message">Message to log</param> | ||
public void LogError(object message) => Logger.LogError(FormatLogMessage(message)); | ||
|
||
/// <summary> | ||
/// Formats a log message as "[TypeName] - Message" | ||
/// </summary> | ||
/// <param name="message">Message to be formatted.</param> | ||
/// <returns>Formatted Message</returns> | ||
private string FormatLogMessage(string message) => $"[{_name}] - {message}"; | ||
|
||
/// <summary> | ||
/// Formats a log message as "[TypeName] - Message" | ||
/// </summary> | ||
/// <param name="message">Message to be formatted.</param> | ||
/// <returns>Formatted Message</returns> | ||
private string FormatLogMessage(object message) => $"[{_name}] - {message.ToString()}"; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.