-
-
Notifications
You must be signed in to change notification settings - Fork 1
Logging information
Logging information is an important piece of any mod. It is what allows modders and players to understand what the mods are doing. Here is how to log information, how to toggle certain levels of logging and when each level should be used.
They are multiple ways to access the logging feature. All you need is to have access to a ManualLogSource object. However, here is the code for my logging system:
internal static class Log
{
private static ManualLogSource _logger;
public static void SetLogger(ManualLogSource logger) => _logger = logger;
private static void LogSelf(object data, LogLevel level) => _logger?.Log(level, data ?? "null");
public static void Debug(object data) => LogSelf(data, LogLevel.Debug);
public static void Info(object data) => LogSelf(data, LogLevel.Message);
public static void Warning(object data) => LogSelf(data, LogLevel.Warning);
public static void Error(object data) => LogSelf(data, LogLevel.Error);
}With this, all you need to do is call Log.SetLogger(Logger) inside the Awake() of your mod. You will then be able to log values from anywhere in your mod.
By default, not all levels of logging are shown in the console. In order to change that, go to BepInEx, config then open BepInEx.cfg. You need to change the value of LogLevels under the Logging.Console section.
Here is a diagram that explains when you should use each level:

Thank you Lethal Company's Modding Server