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);
}
///
public event EventHandler LogEntryReceived;
///
public event EventHandler LogEntriesReceived;
///
public event EventHandler Clear;
}
}