added back MqttTrace consuming api

This commit is contained in:
Jan Eggers
2017-10-23 12:42:31 +02:00
parent d10f29bbc6
commit 7e6f4453ad
8 changed files with 192 additions and 2 deletions
+33
View File
@@ -0,0 +1,33 @@
using System;
using System.Collections.Concurrent;
using Microsoft.Extensions.Logging;
namespace MQTTnet.Core.Diagnostics
{
public class MqttNetTrace : ILoggerProvider
{
private readonly ConcurrentDictionary<string, MqttNetLogger> _loggers = new ConcurrentDictionary<string, MqttNetLogger>();
public static event EventHandler<MqttNetTraceMessagePublishedEventArgs> TraceMessagePublished;
public void Publish(MqttNetTraceMessage msg)
{
TraceMessagePublished?.Invoke(this, new MqttNetTraceMessagePublishedEventArgs(msg));
}
public void Dispose()
{
TraceMessagePublished = null;
}
public ILogger CreateLogger(string categoryName)
{
return _loggers.GetOrAdd(categoryName, CreateLoggerImplementation);
}
private MqttNetLogger CreateLoggerImplementation(string categoryName)
{
return new MqttNetLogger(categoryName, this);
}
}
}