From a93f44217b8b14baf08d8f029947bc5ad8e8287c Mon Sep 17 00:00:00 2001 From: Christian Date: Mon, 16 Nov 2020 20:47:44 +0100 Subject: [PATCH] Align different formats of log messages. --- .../ManagedMqttClient.cs | 6 +++--- Source/MQTTnet/Client/MqttClient.cs | 6 +++--- Source/MQTTnet/Diagnostics/IMqttNetLogger.cs | 2 -- Source/MQTTnet/Diagnostics/MqttNetGlobalLogger.cs | 3 +-- .../MqttNetLogMessagePublishedEventArgs.cs | 6 +++--- Source/MQTTnet/Diagnostics/MqttNetLogger.cs | 15 +++++++++------ .../Implementations/MqttTcpServerAdapter.Uwp.cs | 2 +- .../Implementations/MqttTcpServerListener.cs | 4 ++-- .../MQTTnet/LowLevelClient/LowLevelMqttClient.cs | 2 +- Source/MQTTnet/Server/MqttClientConnection.cs | 8 ++++---- Source/MQTTnet/Server/MqttClientSession.cs | 2 +- .../MQTTnet/Server/MqttClientSessionsManager.cs | 7 ++++--- .../MQTTnet.Core.Tests/Mockups/TestEnvironment.cs | 4 ++-- Tests/MQTTnet.Core.Tests/Server_Tests.cs | 2 +- 14 files changed, 35 insertions(+), 34 deletions(-) diff --git a/Source/MQTTnet.Extensions.ManagedClient/ManagedMqttClient.cs b/Source/MQTTnet.Extensions.ManagedClient/ManagedMqttClient.cs index 714c24a8..b96efc7d 100644 --- a/Source/MQTTnet.Extensions.ManagedClient/ManagedMqttClient.cs +++ b/Source/MQTTnet.Extensions.ManagedClient/ManagedMqttClient.cs @@ -425,7 +425,7 @@ namespace MQTTnet.Extensions.ManagedClient { transmitException = exception; - _logger.Warning(exception, $"Publishing application ({message.Id}) message failed."); + _logger.Warning(exception, "Publishing application message ({0}) failed.", message.Id); if (message.ApplicationMessage.QualityOfServiceLevel == MqttQualityOfServiceLevel.AtMostOnce) { @@ -450,7 +450,7 @@ namespace MQTTnet.Extensions.ManagedClient catch (Exception exception) { transmitException = exception; - _logger.Error(exception, $"Error while publishing application message ({message.Id})."); + _logger.Error(exception, "Error while publishing application message ({0}).", message.Id); } finally { @@ -484,7 +484,7 @@ namespace MQTTnet.Extensions.ManagedClient continue; } - _logger.Verbose($"Publishing subscriptions ({subscriptions.Count} subscriptions and {unsubscriptions.Count} unsubscriptions)"); + _logger.Verbose("Publishing {0} subscriptions and {1} unsubscriptions)", subscriptions.Count, unsubscriptions.Count); foreach (var unsubscription in unsubscriptions) { diff --git a/Source/MQTTnet/Client/MqttClient.cs b/Source/MQTTnet/Client/MqttClient.cs index 9fc54c0d..36497498 100644 --- a/Source/MQTTnet/Client/MqttClient.cs +++ b/Source/MQTTnet/Client/MqttClient.cs @@ -89,7 +89,7 @@ namespace MQTTnet.Client using (var combined = CancellationTokenSource.CreateLinkedTokenSource(backgroundCancellationToken, cancellationToken)) { - _logger.Verbose($"Trying to connect with server '{options.ChannelOptions}' (Timeout={options.CommunicationTimeout})."); + _logger.Verbose("Trying to connect with server '{0}' (Timeout={1}).", options.ChannelOptions, options.CommunicationTimeout); await _adapter.ConnectAsync(options.CommunicationTimeout, combined.Token).ConfigureAwait(false); _logger.Verbose("Connection with server established."); @@ -404,7 +404,7 @@ namespace MQTTnet.Client } catch (Exception e) { - _logger.Warning(e, "Error when sending packet of type '{0}'.", typeof(TResponsePacket).Name); + _logger.Warning(e, "Error when sending request packet ({0}).", requestPacket.GetType().Name); packetAwaiter.Cancel(); } @@ -416,7 +416,7 @@ namespace MQTTnet.Client { if (exception is MqttCommunicationTimedOutException) { - _logger.Warning(null, "Timeout while waiting for packet of type '{0}'.", typeof(TResponsePacket).Name); + _logger.Warning(null, "Timeout while waiting for response packet ({0}).", typeof(TResponsePacket).Name); } throw; diff --git a/Source/MQTTnet/Diagnostics/IMqttNetLogger.cs b/Source/MQTTnet/Diagnostics/IMqttNetLogger.cs index c1176808..e0637abb 100644 --- a/Source/MQTTnet/Diagnostics/IMqttNetLogger.cs +++ b/Source/MQTTnet/Diagnostics/IMqttNetLogger.cs @@ -4,8 +4,6 @@ namespace MQTTnet.Diagnostics { public interface IMqttNetLogger { - event EventHandler LogMessagePublished; - IMqttNetScopedLogger CreateScopedLogger(string source); void Publish(MqttNetLogLevel logLevel, string source, string message, object[] parameters, Exception exception); diff --git a/Source/MQTTnet/Diagnostics/MqttNetGlobalLogger.cs b/Source/MQTTnet/Diagnostics/MqttNetGlobalLogger.cs index a42857ea..0ad74863 100644 --- a/Source/MQTTnet/Diagnostics/MqttNetGlobalLogger.cs +++ b/Source/MQTTnet/Diagnostics/MqttNetGlobalLogger.cs @@ -2,6 +2,7 @@ namespace MQTTnet.Diagnostics { + [Obsolete("Please pass an instance of the IMqttNetLogger to the factory/server or client. The global logger will be deleted in the future.")] public static class MqttNetGlobalLogger { public static event EventHandler LogMessagePublished; @@ -10,8 +11,6 @@ namespace MQTTnet.Diagnostics public static void Publish(MqttNetLogMessage logMessage) { - if (logMessage == null) throw new ArgumentNullException(nameof(logMessage)); - LogMessagePublished?.Invoke(null, new MqttNetLogMessagePublishedEventArgs(logMessage)); } } diff --git a/Source/MQTTnet/Diagnostics/MqttNetLogMessagePublishedEventArgs.cs b/Source/MQTTnet/Diagnostics/MqttNetLogMessagePublishedEventArgs.cs index a1da8815..81ad62d0 100644 --- a/Source/MQTTnet/Diagnostics/MqttNetLogMessagePublishedEventArgs.cs +++ b/Source/MQTTnet/Diagnostics/MqttNetLogMessagePublishedEventArgs.cs @@ -2,18 +2,18 @@ namespace MQTTnet.Diagnostics { - public class MqttNetLogMessagePublishedEventArgs : EventArgs + public sealed class MqttNetLogMessagePublishedEventArgs : EventArgs { public MqttNetLogMessagePublishedEventArgs(MqttNetLogMessage logMessage) { LogMessage = logMessage ?? throw new ArgumentNullException(nameof(logMessage)); #pragma warning disable CS0618 // Type or member is obsolete - TraceMessage = logMessage ?? throw new ArgumentNullException(nameof(logMessage)); + TraceMessage = logMessage; #pragma warning restore CS0618 // Type or member is obsolete } - [Obsolete("Use new proeprty LogMessage instead.")] + [Obsolete("Use new property LogMessage instead.")] public MqttNetLogMessage TraceMessage { get; } public MqttNetLogMessage LogMessage { get; } diff --git a/Source/MQTTnet/Diagnostics/MqttNetLogger.cs b/Source/MQTTnet/Diagnostics/MqttNetLogger.cs index 7cc99e09..200ab88f 100644 --- a/Source/MQTTnet/Diagnostics/MqttNetLogger.cs +++ b/Source/MQTTnet/Diagnostics/MqttNetLogger.cs @@ -36,13 +36,16 @@ namespace MQTTnet.Diagnostics return; } - try + if (parameters?.Length > 0 && message?.Length > 0) { - message = string.Format(message ?? string.Empty, parameters); - } - catch (FormatException) - { - message = "MESSAGE FORMAT INVALID: " + message; + try + { + message = string.Format(message, parameters); + } + catch (FormatException) + { + message = "MESSAGE FORMAT INVALID: " + message; + } } var logMessage = new MqttNetLogMessage diff --git a/Source/MQTTnet/Implementations/MqttTcpServerAdapter.Uwp.cs b/Source/MQTTnet/Implementations/MqttTcpServerAdapter.Uwp.cs index 4243ad4a..111850bc 100644 --- a/Source/MQTTnet/Implementations/MqttTcpServerAdapter.Uwp.cs +++ b/Source/MQTTnet/Implementations/MqttTcpServerAdapter.Uwp.cs @@ -113,7 +113,7 @@ namespace MQTTnet.Implementations } catch (Exception exception) { - _logger.Error(exception, "Error while cleaning up client connection"); + _logger.Error(exception, "Error while cleaning up client connection."); } } } diff --git a/Source/MQTTnet/Implementations/MqttTcpServerListener.cs b/Source/MQTTnet/Implementations/MqttTcpServerListener.cs index 0955139f..33595d90 100644 --- a/Source/MQTTnet/Implementations/MqttTcpServerListener.cs +++ b/Source/MQTTnet/Implementations/MqttTcpServerListener.cs @@ -59,7 +59,7 @@ namespace MQTTnet.Implementations _localEndPoint = new IPEndPoint(boundIp, _options.Port); - _logger.Info($"Starting TCP listener for {_localEndPoint} TLS={_tlsCertificate != null}."); + _logger.Info("Starting TCP listener for {0} TLS={1}.", _localEndPoint, _tlsCertificate != null); _socket = new CrossPlatformSocket(_addressFamily); @@ -131,7 +131,7 @@ namespace MQTTnet.Implementations } } - _logger.Error(exception, $"Error while accepting connection at TCP listener {_localEndPoint} TLS={_tlsCertificate != null}."); + _logger.Error(exception, "Error while accepting connection at TCP listener {0} TLS={1}.", _localEndPoint, _tlsCertificate != null); await Task.Delay(TimeSpan.FromSeconds(1), cancellationToken).ConfigureAwait(false); } } diff --git a/Source/MQTTnet/LowLevelClient/LowLevelMqttClient.cs b/Source/MQTTnet/LowLevelClient/LowLevelMqttClient.cs index 9b88ad8b..666b3379 100644 --- a/Source/MQTTnet/LowLevelClient/LowLevelMqttClient.cs +++ b/Source/MQTTnet/LowLevelClient/LowLevelMqttClient.cs @@ -39,7 +39,7 @@ namespace MQTTnet.LowLevelClient try { - _logger.Verbose($"Trying to connect with server '{options.ChannelOptions}' (Timeout={options.CommunicationTimeout})."); + _logger.Verbose("Trying to connect with server '{0}' (Timeout={1}).", options.ChannelOptions, options.CommunicationTimeout); await newAdapter.ConnectAsync(options.CommunicationTimeout, cancellationToken).ConfigureAwait(false); _logger.Verbose("Connection with server established."); diff --git a/Source/MQTTnet/Server/MqttClientConnection.cs b/Source/MQTTnet/Server/MqttClientConnection.cs index 6a83db07..44f82945 100644 --- a/Source/MQTTnet/Server/MqttClientConnection.cs +++ b/Source/MQTTnet/Server/MqttClientConnection.cs @@ -453,7 +453,7 @@ namespace MQTTnet.Server } } - _logger.Verbose("Queued application message sent (ClientId: {0}).", ClientId); + _logger.Verbose("Client '{0}': Queued application message sent.", ClientId); } } catch (Exception exception) @@ -463,15 +463,15 @@ namespace MQTTnet.Server } else if (exception is MqttCommunicationTimedOutException) { - _logger.Warning(exception, "Sending publish packet failed: Timeout (ClientId: {0}).", ClientId); + _logger.Warning(exception, "Client '{0}': Sending publish packet failed: Timeout.", ClientId); } else if (exception is MqttCommunicationException) { - _logger.Warning(exception, "Sending publish packet failed: Communication exception (ClientId: {0}).", ClientId); + _logger.Warning(exception, "Client '{0}': Sending publish packet failed: Communication exception.", ClientId); } else { - _logger.Error(exception, "Sending publish packet failed (ClientId: {0}).", ClientId); + _logger.Error(exception, "Client '{0}': Sending publish packet failed.", ClientId); } if (publishPacket?.QualityOfServiceLevel > MqttQualityOfServiceLevel.AtMostOnce) diff --git a/Source/MQTTnet/Server/MqttClientSession.cs b/Source/MQTTnet/Server/MqttClientSession.cs index 81f648e0..620c4c96 100644 --- a/Source/MQTTnet/Server/MqttClientSession.cs +++ b/Source/MQTTnet/Server/MqttClientSession.cs @@ -54,7 +54,7 @@ namespace MQTTnet.Server return false; } - _logger.Verbose("Queued application message with topic '{0}' (ClientId: {1}).", applicationMessage.Topic, ClientId); + _logger.Verbose("Client '{0}': Queued application message with topic '{1}'.", ClientId, applicationMessage.Topic); ApplicationMessagesQueue.Enqueue(applicationMessage, senderClientId, checkSubscriptionsResult.QualityOfServiceLevel, isRetainedApplicationMessage); diff --git a/Source/MQTTnet/Server/MqttClientSessionsManager.cs b/Source/MQTTnet/Server/MqttClientSessionsManager.cs index 6f6cc0f0..9013b1e9 100644 --- a/Source/MQTTnet/Server/MqttClientSessionsManager.cs +++ b/Source/MQTTnet/Server/MqttClientSessionsManager.cs @@ -67,20 +67,21 @@ namespace MQTTnet.Server if (connectPacket == null) { _logger.Warning(null, - "The first packet from client '{0}' was no 'CONNECT' packet [MQTT-3.1.0-1].", + "Client '{0}': First received packet was no 'CONNECT' packet [MQTT-3.1.0-1].", channelAdapter.Endpoint); + return; } } } catch (OperationCanceledException) { - _logger.Warning(null, "Client '{0}' connected but did not sent a CONNECT packet.", channelAdapter.Endpoint); + _logger.Warning(null, "Client '{0}': Connected but did not sent a CONNECT packet.", channelAdapter.Endpoint); return; } catch (MqttCommunicationTimedOutException) { - _logger.Warning(null, "Client '{0}' connected but did not sent a CONNECT packet.", channelAdapter.Endpoint); + _logger.Warning(null, "Client '{0}': Connected but did not sent a CONNECT packet.", channelAdapter.Endpoint); return; } diff --git a/Tests/MQTTnet.Core.Tests/Mockups/TestEnvironment.cs b/Tests/MQTTnet.Core.Tests/Mockups/TestEnvironment.cs index 1fc2508a..333a3552 100644 --- a/Tests/MQTTnet.Core.Tests/Mockups/TestEnvironment.cs +++ b/Tests/MQTTnet.Core.Tests/Mockups/TestEnvironment.cs @@ -30,9 +30,9 @@ namespace MQTTnet.Tests.Mockups public int ServerPort { get; set; } = 1888; - public IMqttNetLogger ServerLogger { get; } = new MqttNetLogger("server"); + public MqttNetLogger ServerLogger { get; } = new MqttNetLogger("server"); - public IMqttNetLogger ClientLogger { get; } = new MqttNetLogger("client"); + public MqttNetLogger ClientLogger { get; } = new MqttNetLogger("client"); public TestContext TestContext { get; } diff --git a/Tests/MQTTnet.Core.Tests/Server_Tests.cs b/Tests/MQTTnet.Core.Tests/Server_Tests.cs index bc21e135..2afa89db 100644 --- a/Tests/MQTTnet.Core.Tests/Server_Tests.cs +++ b/Tests/MQTTnet.Core.Tests/Server_Tests.cs @@ -445,7 +445,7 @@ namespace MQTTnet.Tests await c1.PublishAsync(message).ConfigureAwait(false); } - SpinWait.SpinUntil(() => receivedMessagesCount == 1000, TimeSpan.FromSeconds(15)); + SpinWait.SpinUntil(() => receivedMessagesCount == 1000, TimeSpan.FromSeconds(20)); Assert.AreEqual(1000, receivedMessagesCount); }