mirror of
https://github.com/dotnet/MQTTnet.git
synced 2026-10-16 01:03:01 +08:00
49 lines
1.5 KiB
C#
49 lines
1.5 KiB
C#
using System;
|
|
using Microsoft.Extensions.Logging;
|
|
using MQTTnet.Diagnostics;
|
|
|
|
namespace MQTTnet.Server.Logging
|
|
{
|
|
public class MqttNetLoggerWrapper : IMqttNetLogger
|
|
{
|
|
private readonly ILogger<MqttServer> _logger;
|
|
|
|
public MqttNetLoggerWrapper(ILogger<MqttServer> logger)
|
|
{
|
|
_logger = logger ?? throw new ArgumentNullException(nameof(logger));
|
|
}
|
|
|
|
public event EventHandler<MqttNetLogMessagePublishedEventArgs> LogMessagePublished;
|
|
|
|
public IMqttNetChildLogger CreateChildLogger(string source = null)
|
|
{
|
|
return new MqttNetChildLoggerWrapper(source, this);
|
|
}
|
|
|
|
public void Publish(MqttNetLogLevel logLevel, string source, string message, object[] parameters, Exception exception)
|
|
{
|
|
var convertedLogLevel = ConvertLogLevel(logLevel);
|
|
|
|
if (!_logger.IsEnabled(convertedLogLevel))
|
|
{
|
|
return;
|
|
}
|
|
|
|
_logger.Log(convertedLogLevel, exception, message, parameters);
|
|
}
|
|
|
|
private static LogLevel ConvertLogLevel(MqttNetLogLevel logLevel)
|
|
{
|
|
switch (logLevel)
|
|
{
|
|
case MqttNetLogLevel.Error: return LogLevel.Error;
|
|
case MqttNetLogLevel.Warning: return LogLevel.Warning;
|
|
case MqttNetLogLevel.Info: return LogLevel.Information;
|
|
case MqttNetLogLevel.Verbose: return LogLevel.Trace;
|
|
}
|
|
|
|
return LogLevel.Debug;
|
|
}
|
|
}
|
|
}
|