Logging¶
RocketMod 5 uses ILogger service for logging. You can use it in your plugin like this:
public class MyPlugin : Plugin
{
private readonly ILogger logger;
public MyPlugin(IDependencyContainer container, ILogger logger): base(container)
{
this.logger = logger;
}
protected override async Task OnActivate(bool isFromReload)
{
logger.LogFatal("This is a fatal error"); // Fatal errors which prevents the server or plugin from working, user must take action.
logger.LogError("This is an error"); // Errors, e.g. exceptions, might require the user to take action
logger.LogWarning("This is a warning"); // Warnings, do es not require the user to take action
logger.LogInformation("This is some information"); // Generic log messages to inform the user
logger.LogDebug("This is a debug message"); // Logging debug specific stuff like variable values, states etc.
logger.LogTrace("This is a trace message"); // Tracing API, method calls etc (generates lots of logs)
}
}
Note
Order of log messages level is like this:
(least messages) -> (most messages)
Fatal
> Error
> Warning
> Information
> Debug
> Trace
.
This means that, for example, when log level is set to "Warning", only "Warning", "Error" and "Fatal" messages will be shown.
You can also register a custom ILogger
(by implementing ILogger
or inheriting BaseLogger
/FormattedLogger
/FileLogger
) to capture and handle log messages.