Files
LogViewerControl/CSharp/Serilog.Sinks.LogView.Core/Extensions/DataStoreLoggerSinkExtensions.cs
2026-04-05 10:34:49 +02:00

25 lines
920 B
C#

using Serilog.Configuration;
using LogViewer.Core;
using Serilog.Sinks.LogView.Core.Logging;
namespace Serilog.Sinks.LogView.Core.Extensions;
public static class DataStoreLoggerSinkExtensions
{
public static LoggerConfiguration DataStoreLoggerSink
(
this LoggerSinkConfiguration loggerConfiguration,
Func<ILogDataStore> dataStoreProvider,
Action<DataStoreLoggerConfiguration>? configuration = null,
IFormatProvider formatProvider = null!
)
=> loggerConfiguration.Sink(new DataStoreLoggerSink(dataStoreProvider, GetConfig(configuration), formatProvider));
private static Func<DataStoreLoggerConfiguration> GetConfig(Action<DataStoreLoggerConfiguration>? configuration)
{
// convert from Action to Func delegate to pass data
DataStoreLoggerConfiguration data = new();
configuration?.Invoke(data);
return () => data;
}
}