API 9
This commit is contained in:
parent
8a9b2a3757
commit
25065bfa97
@ -1,18 +1,18 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net7.0</TargetFramework>
|
<TargetFramework>net7.0-windows</TargetFramework>
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<PackageId>Dalamud.Extensions.MicrosoftLogging</PackageId>
|
<PackageId>Dalamud.Extensions.MicrosoftLogging</PackageId>
|
||||||
<Version>1.0.0</Version>
|
<Version>2.0.0</Version>
|
||||||
<Authors>Liza Carvelli</Authors>
|
<Authors>Liza Carvelli</Authors>
|
||||||
<PackageLicenseExpression>MIT</PackageLicenseExpression>
|
<PackageLicenseExpression>MIT</PackageLicenseExpression>
|
||||||
<PackageProjectUrl>https://github.com/carvelli/Dalamud.Extensions.MicrosoftLogging</PackageProjectUrl>
|
<PackageProjectUrl>https://git.carvel.li/liza/Dalamud.Extensions.MicrosoftLogging</PackageProjectUrl>
|
||||||
<RepositoryUrl>https://github.com/carvelli/Dalamud.Extensions.MicrosoftLogging.git</RepositoryUrl>
|
<RepositoryUrl>https://git.carvel.li/liza/Dalamud.Extensions.MicrosoftLogging.git</RepositoryUrl>
|
||||||
<RepositoryType>git</RepositoryType>
|
<RepositoryType>git</RepositoryType>
|
||||||
<GeneratePackageOnBuild Condition="$(Configuration) == 'Release'">true</GeneratePackageOnBuild>
|
<GeneratePackageOnBuild Condition="$(Configuration) == 'Release'">true</GeneratePackageOnBuild>
|
||||||
<DebugType>portable</DebugType>
|
<DebugType>portable</DebugType>
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
using Dalamud.Plugin.Services;
|
||||||
using Serilog.Events;
|
using Serilog.Events;
|
||||||
|
|
||||||
namespace Dalamud.Extensions.MicrosoftLogging
|
namespace Dalamud.Extensions.MicrosoftLogging
|
||||||
@ -8,19 +9,14 @@ namespace Dalamud.Extensions.MicrosoftLogging
|
|||||||
public sealed class DalamudLogger : ILogger
|
public sealed class DalamudLogger : ILogger
|
||||||
{
|
{
|
||||||
private readonly string _name;
|
private readonly string _name;
|
||||||
private readonly string _assemblyName;
|
|
||||||
private readonly IExternalScopeProvider? _scopeProvider;
|
private readonly IExternalScopeProvider? _scopeProvider;
|
||||||
private readonly Serilog.ILogger _pluginLogDelegate;
|
private readonly IPluginLog _pluginLogDelegate;
|
||||||
|
|
||||||
public DalamudLogger(string name, Assembly assembly, IExternalScopeProvider? scopeProvider)
|
public DalamudLogger(string name, IExternalScopeProvider? scopeProvider, IPluginLog pluginLogDelegate)
|
||||||
{
|
{
|
||||||
_name = name;
|
_name = name;
|
||||||
_assemblyName = assembly.GetName().Name ??
|
|
||||||
typeof(DalamudLogger).Assembly.GetName().Name ??
|
|
||||||
"{unknown DalamudLogger}";
|
|
||||||
_scopeProvider = scopeProvider;
|
_scopeProvider = scopeProvider;
|
||||||
_pluginLogDelegate =
|
_pluginLogDelegate = pluginLogDelegate;
|
||||||
Serilog.Log.ForContext("SourceContext", _assemblyName);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public IDisposable BeginScope<TState>(TState state)
|
public IDisposable BeginScope<TState>(TState state)
|
||||||
@ -29,7 +25,7 @@ namespace Dalamud.Extensions.MicrosoftLogging
|
|||||||
|
|
||||||
public bool IsEnabled(LogLevel logLevel) => logLevel != LogLevel.None && IsEnabled(ToSerilogLevel(logLevel));
|
public bool IsEnabled(LogLevel logLevel) => logLevel != LogLevel.None && IsEnabled(ToSerilogLevel(logLevel));
|
||||||
|
|
||||||
private bool IsEnabled(LogEventLevel logEventLevel) => _pluginLogDelegate.IsEnabled(logEventLevel);
|
private bool IsEnabled(LogEventLevel logEventLevel) => logEventLevel >= _pluginLogDelegate.MinimumLogLevel;
|
||||||
|
|
||||||
public void Log<TState>(LogLevel logLevel, EventId eventId, TState state, Exception? exception,
|
public void Log<TState>(LogLevel logLevel, EventId eventId, TState state, Exception? exception,
|
||||||
Func<TState, Exception?, string> formatter)
|
Func<TState, Exception?, string> formatter)
|
||||||
@ -45,7 +41,6 @@ namespace Dalamud.Extensions.MicrosoftLogging
|
|||||||
throw new ArgumentNullException(nameof(formatter));
|
throw new ArgumentNullException(nameof(formatter));
|
||||||
|
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
sb.Append('[').Append(_assemblyName).Append("] ");
|
|
||||||
_scopeProvider?.ForEachScope((scope, builder) =>
|
_scopeProvider?.ForEachScope((scope, builder) =>
|
||||||
{
|
{
|
||||||
if (scope is IEnumerable<KeyValuePair<string, object>> properties)
|
if (scope is IEnumerable<KeyValuePair<string, object>> properties)
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using Dalamud.Plugin;
|
using Dalamud.Plugin.Services;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Microsoft.Extensions.DependencyInjection.Extensions;
|
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
@ -8,11 +8,11 @@ namespace Dalamud.Extensions.MicrosoftLogging
|
|||||||
public static class DalamudLoggerExtensions
|
public static class DalamudLoggerExtensions
|
||||||
{
|
{
|
||||||
public static ILoggingBuilder AddDalamudLogger(
|
public static ILoggingBuilder AddDalamudLogger(
|
||||||
this ILoggingBuilder builder, IDalamudPlugin dalamudPlugin)
|
this ILoggingBuilder builder, IPluginLog pluginLog)
|
||||||
{
|
{
|
||||||
builder.Services.TryAddEnumerable(
|
builder.Services.TryAddEnumerable(
|
||||||
ServiceDescriptor.Singleton<ILoggerProvider>(
|
ServiceDescriptor.Singleton<ILoggerProvider>(
|
||||||
new DalamudLoggerProvider(dalamudPlugin.GetType().Assembly)));
|
new DalamudLoggerProvider(pluginLog)));
|
||||||
return builder;
|
return builder;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,16 +1,16 @@
|
|||||||
using System.Reflection;
|
using Dalamud.Plugin.Services;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
|
||||||
namespace Dalamud.Extensions.MicrosoftLogging
|
namespace Dalamud.Extensions.MicrosoftLogging
|
||||||
{
|
{
|
||||||
public sealed class DalamudLoggerProvider : ILoggerProvider, ISupportExternalScope
|
public sealed class DalamudLoggerProvider : ILoggerProvider, ISupportExternalScope
|
||||||
{
|
{
|
||||||
private readonly Assembly _assembly;
|
private readonly IPluginLog _pluginLog;
|
||||||
private IExternalScopeProvider? _scopeProvider;
|
private IExternalScopeProvider? _scopeProvider;
|
||||||
|
|
||||||
public DalamudLoggerProvider(Assembly assembly)
|
public DalamudLoggerProvider(IPluginLog pluginLog)
|
||||||
{
|
{
|
||||||
_assembly = assembly;
|
_pluginLog = pluginLog;
|
||||||
}
|
}
|
||||||
|
|
||||||
ILogger ILoggerProvider.CreateLogger(string categoryName)
|
ILogger ILoggerProvider.CreateLogger(string categoryName)
|
||||||
@ -29,7 +29,7 @@ namespace Dalamud.Extensions.MicrosoftLogging
|
|||||||
=> CreateLoggerImpl(typeof(T).FullName ?? typeof(T).ToString());
|
=> CreateLoggerImpl(typeof(T).FullName ?? typeof(T).ToString());
|
||||||
|
|
||||||
private ILogger CreateLoggerImpl(string categoryName)
|
private ILogger CreateLoggerImpl(string categoryName)
|
||||||
=> new DalamudLogger(categoryName, _assembly, _scopeProvider);
|
=> new DalamudLogger(categoryName, _scopeProvider, _pluginLog);
|
||||||
|
|
||||||
public void SetScopeProvider(IExternalScopeProvider scopeProvider)
|
public void SetScopeProvider(IExternalScopeProvider scopeProvider)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user