JD2022-TU1/main/tools/modules/JD.EngineLogger/Providers/OutputProvider.cs

43 lines
1.2 KiB
C#

using System;
using Plume.Interfaces.Logging;
using Plume.Interfaces.Modules;
using Plume.Output.Model;
using Plume.Output.Model.NLog;
namespace JD.EngineLogger.Providers
{
public class OutputProvider : ILogEntryProvider
{
public OutputProvider(ILoggerManager loggerManager)
{
var nlogProvider = new NLogProvider(loggerManager);
nlogProvider.LogEntryReceived += (sender, entry) => OnLogEntryReceived(entry);
nlogProvider.LogEntriesReceived += (sender, entry) => OnLogEntryReceived(entry);
nlogProvider.Clear += (sender, args) => OnClear();
}
public void OnLogEntryReceived(ILogEntry logEntry)
{
LogEntryReceived?.Invoke(this, logEntry);
}
public void OnLogEntryReceived(ILogEntry[] logEntries)
{
LogEntriesReceived?.Invoke(this, logEntries);
}
public virtual void OnClear()
{
Clear?.Invoke(this, EventArgs.Empty);
}
/// <inheritdoc />
public event EventHandler<ILogEntry> LogEntryReceived;
/// <inheritdoc />
public event EventHandler<ILogEntry[]> LogEntriesReceived;
/// <inheritdoc />
public event EventHandler Clear;
}
}