mirror of
https://github.com/AlexMacocian/SystemExtensions.git
synced 2026-07-16 06:29:29 +00:00
40 lines
1.1 KiB
C#
40 lines
1.1 KiB
C#
using Microsoft.CorrelationVector;
|
|
using Microsoft.Extensions.Logging;
|
|
using System.Extensions;
|
|
|
|
namespace System.Logging
|
|
{
|
|
public sealed class CVLoggerProvider : ICVLoggerProvider
|
|
{
|
|
private readonly ILogsWriter logsManager;
|
|
private readonly CorrelationVector correlationVector;
|
|
|
|
public CVLoggerProvider(ILogsWriter logsWriter)
|
|
{
|
|
this.logsManager = logsWriter.ThrowIfNull(nameof(logsWriter));
|
|
this.correlationVector = new CorrelationVector();
|
|
}
|
|
|
|
public void LogEntry(Log log)
|
|
{
|
|
if (this.correlationVector is not null)
|
|
{
|
|
log.CorrelationVector = this.correlationVector.Value.ToString();
|
|
this.correlationVector.Increment();
|
|
}
|
|
|
|
this.logsManager.WriteLog(log);
|
|
}
|
|
|
|
public ILogger CreateLogger(string categoryName)
|
|
{
|
|
return new CVLogger(categoryName, this);
|
|
}
|
|
|
|
public void Dispose()
|
|
{
|
|
throw new System.NotImplementedException();
|
|
}
|
|
}
|
|
}
|