mirror of
https://github.com/dotnet/MQTTnet.git
synced 2026-10-16 17:23:04 +08:00
# Conflicts: # MQTTnet.Core/Serializer/MqttPacketReader.cs # MQTTnet.Core/Serializer/MqttPacketSerializer.cs # Tests/MQTTnet.TestApp.NetFramework/PerformanceTest.cs
64 lines
2.2 KiB
C#
64 lines
2.2 KiB
C#
using System;
|
|
|
|
namespace MQTTnet.Core.Diagnostics
|
|
{
|
|
public static class MqttTrace
|
|
{
|
|
public static event EventHandler<MqttTraceMessagePublishedEventArgs> TraceMessagePublished;
|
|
|
|
public static void Verbose(string source, string message, params object[] parameters)
|
|
{
|
|
Publish(source, MqttTraceLevel.Verbose, null, message, parameters);
|
|
}
|
|
|
|
public static void Information(string source, string message, params object[] parameters)
|
|
{
|
|
Publish(source, MqttTraceLevel.Information, null, message, parameters);
|
|
}
|
|
|
|
public static void Warning(string source, string message, params object[] parameters)
|
|
{
|
|
Publish(source, MqttTraceLevel.Warning, null, message, parameters);
|
|
}
|
|
|
|
public static void Warning(string source, Exception exception, string message, params object[] parameters)
|
|
{
|
|
Publish(source, MqttTraceLevel.Warning, exception, message, parameters);
|
|
}
|
|
|
|
public static void Error(string source, string message, params object[] parameters)
|
|
{
|
|
Publish(source, MqttTraceLevel.Error, null, message, parameters);
|
|
}
|
|
|
|
public static void Error(string source, Exception exception, string message, params object[] parameters)
|
|
{
|
|
Publish(source, MqttTraceLevel.Error, exception, message, parameters);
|
|
}
|
|
|
|
private static void Publish(string source, MqttTraceLevel traceLevel, Exception exception, string message, params object[] parameters)
|
|
{
|
|
var handler = TraceMessagePublished;
|
|
if (handler == null)
|
|
{
|
|
return;
|
|
}
|
|
|
|
if (parameters?.Length > 0)
|
|
{
|
|
try
|
|
{
|
|
message = string.Format(message, parameters);
|
|
}
|
|
catch (Exception formatException)
|
|
{
|
|
Error(nameof(MqttTrace), formatException, "Error while tracing message: " + message);
|
|
return;
|
|
}
|
|
}
|
|
|
|
handler.Invoke(null, new MqttTraceMessagePublishedEventArgs(Environment.CurrentManagedThreadId, source, traceLevel, message, exception));
|
|
}
|
|
}
|
|
}
|