Expose Serilog API to plugins

This commit is contained in:
Kaz Wolfe 2024-09-29 10:45:43 -07:00
parent 3c18814a66
commit 621fd17e1d
No known key found for this signature in database
GPG key ID: 258813F53A16EBB4
3 changed files with 13 additions and 7 deletions

View file

@ -40,6 +40,9 @@ internal class ScopedPluginLogService : IServiceType, IPluginLog
this.Logger = loggerConfiguration.CreateLogger();
}
/// <inheritdoc />
public ILogger Logger { get; }
/// <inheritdoc />
public LogEventLevel MinimumLogLevel
@ -47,12 +50,7 @@ internal class ScopedPluginLogService : IServiceType, IPluginLog
get => this.levelSwitch.MinimumLevel;
set => this.levelSwitch.MinimumLevel = value;
}
/// <summary>
/// Gets a logger that may be exposed to plugins some day.
/// </summary>
public ILogger Logger { get; }
/// <inheritdoc />
public void Fatal(string messageTemplate, params object[] values) =>
this.Write(LogEventLevel.Fatal, null, messageTemplate, values);

View file

@ -1,4 +1,5 @@
using Serilog.Events;
using Serilog;
using Serilog.Events;
#pragma warning disable CS1573 // See https://github.com/dotnet/roslyn/issues/40325
@ -9,6 +10,12 @@ namespace Dalamud.Plugin.Services;
/// </summary>
public interface IPluginLog
{
/// <summary>
/// Gets a Serilog ILogger instance for this plugin. This is the entrypoint for plugins that wish to use more
/// advanced logging functionality.
/// </summary>
public ILogger Logger { get; }
/// <summary>
/// Gets or sets the minimum log level that will be recorded from this plugin to Dalamud's logs. This may be set
/// by either the plugin or by Dalamud itself.

View file

@ -22,6 +22,7 @@
<Reference Include="ImGuiScene" Private="false" />
<Reference Include="Lumina" Private="false" />
<Reference Include="Lumina.Excel" Private="false" />
<Reference Include="Serilog" Private="false" />
</ItemGroup>
<Target Name="Message" BeforeTargets="BeforeBuild">