From dcd22742e7e3a72d632cb9b6e93f52fa4bb13282 Mon Sep 17 00:00:00 2001 From: Mark van Renswoude Date: Tue, 8 Jan 2019 16:36:52 +0100 Subject: [PATCH] Implemented logging for connection events --- Tapeti.Serilog/TapetiSeriLogger.cs | 25 ++++++++++++++----------- Tapeti/Connection/TapetiWorker.cs | 10 +++++++++- Tapeti/Default/ConsoleLogger.cs | 8 ++++---- Tapeti/Default/DevNullLogger.cs | 2 +- Tapeti/ILogger.cs | 2 +- Test/App.config | 6 ++++++ Test/MyLogger.cs | 7 +------ 7 files changed, 36 insertions(+), 24 deletions(-) create mode 100644 Test/App.config diff --git a/Tapeti.Serilog/TapetiSeriLogger.cs b/Tapeti.Serilog/TapetiSeriLogger.cs index 5811d08..65605bb 100644 --- a/Tapeti.Serilog/TapetiSeriLogger.cs +++ b/Tapeti.Serilog/TapetiSeriLogger.cs @@ -1,8 +1,6 @@ using System; using ISeriLogger = Serilog.ILogger; -// ReSharper disable UnusedMember.Global - namespace Tapeti.Serilog { public class TapetiSeriLogger: ILogger @@ -16,26 +14,31 @@ namespace Tapeti.Serilog public void Connect(TapetiConnectionParams connectionParams) { - // method not yet used in Tapeti - seriLogger.Information("Trying to connected to " + connectionParams.HostName); + seriLogger.Information("Tapeti: trying to connect to {host}:{port}/{virtualHost}", + connectionParams.HostName, + connectionParams.Port, + connectionParams.VirtualHost); } - public void ConnectFailed(TapetiConnectionParams connectionParams) + public void ConnectFailed(TapetiConnectionParams connectionParams, Exception exception) { - // method not yet used in Tapeti - seriLogger.Error("Could not connect to " + connectionParams.HostName); - + seriLogger.Error(exception, "Tapeti: could not connect to {host}:{port}/{virtualHost}", + connectionParams.HostName, + connectionParams.Port, + connectionParams.VirtualHost); } public void ConnectSuccess(TapetiConnectionParams connectionParams) { - // method not yet used in Tapeti - seriLogger.Information("Succesfull connected to " + connectionParams.HostName); + seriLogger.Information("Tapeti: successfully connected to {host}:{port}/{virtualHost}", + connectionParams.HostName, + connectionParams.Port, + connectionParams.VirtualHost); } public void HandlerException(Exception e) { - seriLogger.Error(e, "Exception handled by Tapeti"); + seriLogger.Error(e, "Tapeti: exception in message handler"); } } } diff --git a/Tapeti/Connection/TapetiWorker.cs b/Tapeti/Connection/TapetiWorker.cs index 398840c..d5781cd 100644 --- a/Tapeti/Connection/TapetiWorker.cs +++ b/Tapeti/Connection/TapetiWorker.cs @@ -16,6 +16,7 @@ namespace Tapeti.Connection private const int PublishMaxConnectAttempts = 3; private readonly IConfig config; + private readonly ILogger logger; public TapetiConnectionParams ConnectionParams { get; set; } public IConnectionEventListener ConnectionEventListener { get; set; } @@ -31,6 +32,7 @@ namespace Tapeti.Connection { this.config = config; + logger = config.DependencyResolver.Resolve(); messageSerializer = config.DependencyResolver.Resolve(); routingKeyStrategy = config.DependencyResolver.Resolve(); exchangeStrategy = config.DependencyResolver.Resolve(); @@ -201,6 +203,8 @@ namespace Tapeti.Connection { try { + logger.Connect(ConnectionParams); + connection = connectionFactory.CreateConnection(); channelInstance = connection.CreateModel(); @@ -212,10 +216,14 @@ namespace Tapeti.Connection channelInstance.ModelShutdown += (sender, e) => ConnectionEventListener?.Disconnected(); ConnectionEventListener?.Connected(); + logger.ConnectSuccess(ConnectionParams); + break; } - catch (BrokerUnreachableException) + catch (BrokerUnreachableException e) { + logger.ConnectFailed(ConnectionParams, e); + attempts++; if (maxAttempts.HasValue && attempts > maxAttempts.Value) throw; diff --git a/Tapeti/Default/ConsoleLogger.cs b/Tapeti/Default/ConsoleLogger.cs index 1f02904..e8c5776 100644 --- a/Tapeti/Default/ConsoleLogger.cs +++ b/Tapeti/Default/ConsoleLogger.cs @@ -6,17 +6,17 @@ namespace Tapeti.Default { public void Connect(TapetiConnectionParams connectionParams) { - throw new NotImplementedException(); + Console.WriteLine($"[Tapeti] Connecting to {connectionParams.HostName}:{connectionParams.Port}{connectionParams.VirtualHost}"); } - public void ConnectFailed(TapetiConnectionParams connectionParams) + public void ConnectFailed(TapetiConnectionParams connectionParams, Exception exception) { - throw new NotImplementedException(); + Console.WriteLine($"[Tapeti] Connection failed: {exception}"); } public void ConnectSuccess(TapetiConnectionParams connectionParams) { - throw new NotImplementedException(); + Console.WriteLine($"[Tapeti] Connected"); } public void HandlerException(Exception e) diff --git a/Tapeti/Default/DevNullLogger.cs b/Tapeti/Default/DevNullLogger.cs index af4ce57..df7952f 100644 --- a/Tapeti/Default/DevNullLogger.cs +++ b/Tapeti/Default/DevNullLogger.cs @@ -8,7 +8,7 @@ namespace Tapeti.Default { } - public void ConnectFailed(TapetiConnectionParams connectionParams) + public void ConnectFailed(TapetiConnectionParams connectionParams, Exception exception) { } diff --git a/Tapeti/ILogger.cs b/Tapeti/ILogger.cs index ee0e0e2..8ec857d 100644 --- a/Tapeti/ILogger.cs +++ b/Tapeti/ILogger.cs @@ -9,7 +9,7 @@ namespace Tapeti public interface ILogger { void Connect(TapetiConnectionParams connectionParams); - void ConnectFailed(TapetiConnectionParams connectionParams); + void ConnectFailed(TapetiConnectionParams connectionParams, Exception exception); void ConnectSuccess(TapetiConnectionParams connectionParams); void HandlerException(Exception e); } diff --git a/Test/App.config b/Test/App.config new file mode 100644 index 0000000..b55cd45 --- /dev/null +++ b/Test/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Test/MyLogger.cs b/Test/MyLogger.cs index 58d51b1..81a60d8 100644 --- a/Test/MyLogger.cs +++ b/Test/MyLogger.cs @@ -1,25 +1,20 @@ using System; using Tapeti; -// ReSharper disable UnusedMember.Global - namespace Test { public class MyLogger : ILogger { public void Connect(TapetiConnectionParams connectionParams) { - throw new NotImplementedException(); } - public void ConnectFailed(TapetiConnectionParams connectionParams) + public void ConnectFailed(TapetiConnectionParams connectionParams, Exception exception) { - throw new NotImplementedException(); } public void ConnectSuccess(TapetiConnectionParams connectionParams) { - throw new NotImplementedException(); } public void HandlerException(Exception e)