From 7aab9722962fac5f7e29b77f83bcd97d9d8cf78a Mon Sep 17 00:00:00 2001 From: Pedro Costa Date: Sat, 30 May 2020 00:08:50 +0100 Subject: [PATCH] ellapsed long 2 double --- src/Dapper.Logging/Hooks/ISqlHooks.cs | 6 ++-- src/Dapper.Logging/Hooks/WrappedCommand.cs | 35 +++++++++++-------- src/Dapper.Logging/Hooks/WrappedConnection.cs | 17 +++++---- src/Dapper.Logging/LoggingHook.cs | 6 ++-- 4 files changed, 37 insertions(+), 27 deletions(-) diff --git a/src/Dapper.Logging/Hooks/ISqlHooks.cs b/src/Dapper.Logging/Hooks/ISqlHooks.cs index d234360..a1fc257 100644 --- a/src/Dapper.Logging/Hooks/ISqlHooks.cs +++ b/src/Dapper.Logging/Hooks/ISqlHooks.cs @@ -5,8 +5,8 @@ namespace Dapper.Logging.Hooks { public interface ISqlHooks { - void ConnectionOpened(DbConnection connection, T context, long elapsedMs); - void ConnectionClosed(DbConnection connection, T context, long elapsedMs); - void CommandExecuted(DbCommand command, T context, long elapsedMs); + void ConnectionOpened(DbConnection connection, T context, double elapsedMs); + void ConnectionClosed(DbConnection connection, T context, double elapsedMs); + void CommandExecuted(DbCommand command, T context, double elapsedMs); } } \ No newline at end of file diff --git a/src/Dapper.Logging/Hooks/WrappedCommand.cs b/src/Dapper.Logging/Hooks/WrappedCommand.cs index 77889df..00bfe0a 100644 --- a/src/Dapper.Logging/Hooks/WrappedCommand.cs +++ b/src/Dapper.Logging/Hooks/WrappedCommand.cs @@ -14,9 +14,9 @@ internal class WrappedCommand : DbCommand private readonly T _context; public WrappedCommand( - DbCommand command, - DbConnection connection, - ISqlHooks hooks, + DbCommand command, + DbConnection connection, + ISqlHooks hooks, T context) { _command = command; @@ -27,50 +27,50 @@ public WrappedCommand( protected override DbDataReader ExecuteDbDataReader(CommandBehavior behavior) { - var sw = Stopwatch.StartNew(); + var start = Stopwatch.GetTimestamp(); var reader = _command.ExecuteReader(behavior); - _hooks.CommandExecuted(this, _context, sw.ElapsedMilliseconds); + _hooks.CommandExecuted(this, _context, GetElapsedMilliseconds(start, Stopwatch.GetTimestamp())); return reader; } protected override async Task ExecuteDbDataReaderAsync( CommandBehavior behavior, CancellationToken cancellationToken) { - var sw = Stopwatch.StartNew(); + var start = Stopwatch.GetTimestamp(); var reader = await _command.ExecuteReaderAsync(behavior, cancellationToken); - _hooks.CommandExecuted(this, _context, sw.ElapsedMilliseconds); + _hooks.CommandExecuted(this, _context, GetElapsedMilliseconds(start, Stopwatch.GetTimestamp())); return reader; } public override int ExecuteNonQuery() { - var sw = Stopwatch.StartNew(); + var start = Stopwatch.GetTimestamp(); var result = _command.ExecuteNonQuery(); - _hooks.CommandExecuted(this, _context, sw.ElapsedMilliseconds); + _hooks.CommandExecuted(this, _context, GetElapsedMilliseconds(start, Stopwatch.GetTimestamp())); return result; } public override async Task ExecuteNonQueryAsync(CancellationToken cancellationToken) { - var sw = Stopwatch.StartNew(); + var start = Stopwatch.GetTimestamp(); var result = await _command.ExecuteNonQueryAsync(cancellationToken); - _hooks.CommandExecuted(this, _context, sw.ElapsedMilliseconds); + _hooks.CommandExecuted(this, _context, GetElapsedMilliseconds(start, Stopwatch.GetTimestamp())); return result; } public override object ExecuteScalar() { - var sw = Stopwatch.StartNew(); + var start = Stopwatch.GetTimestamp(); var result = _command.ExecuteScalar(); - _hooks.CommandExecuted(this, _context, sw.ElapsedMilliseconds); + _hooks.CommandExecuted(this, _context, GetElapsedMilliseconds(start, Stopwatch.GetTimestamp())); return result; } public override async Task ExecuteScalarAsync(CancellationToken cancellationToken) { - var sw = Stopwatch.StartNew(); + var start = Stopwatch.GetTimestamp(); var result = await _command.ExecuteScalarAsync(cancellationToken); - _hooks.CommandExecuted(this, _context, sw.ElapsedMilliseconds); + _hooks.CommandExecuted(this, _context, GetElapsedMilliseconds(start, Stopwatch.GetTimestamp())); return result; } @@ -129,6 +129,11 @@ protected override void Dispose(bool disposing) _command?.Dispose(); base.Dispose(disposing); + } + + double GetElapsedMilliseconds(long start, long stop) + { + return (stop - start) * 1000 / (double)Stopwatch.Frequency; } } } \ No newline at end of file diff --git a/src/Dapper.Logging/Hooks/WrappedConnection.cs b/src/Dapper.Logging/Hooks/WrappedConnection.cs index 9574c93..a5083f8 100644 --- a/src/Dapper.Logging/Hooks/WrappedConnection.cs +++ b/src/Dapper.Logging/Hooks/WrappedConnection.cs @@ -21,23 +21,23 @@ public WrappedConnection(DbConnection connection, ISqlHooks hooks, T context) public override void Close() { - var sw = Stopwatch.StartNew(); + var start = Stopwatch.GetTimestamp(); _connection.Close(); - _hooks.ConnectionClosed(this, _context, sw.ElapsedMilliseconds); + _hooks.ConnectionClosed(this, _context, GetElapsedMilliseconds(start, Stopwatch.GetTimestamp())); } public override void Open() { - var sw = Stopwatch.StartNew(); + var start = Stopwatch.GetTimestamp(); _connection.Open(); - _hooks.ConnectionOpened(this, _context, sw.ElapsedMilliseconds); + _hooks.ConnectionOpened(this, _context, GetElapsedMilliseconds(start, Stopwatch.GetTimestamp())); } public override async Task OpenAsync(CancellationToken cancellationToken) { - var sw = Stopwatch.StartNew(); + var start = Stopwatch.GetTimestamp(); await _connection.OpenAsync(cancellationToken); - _hooks.ConnectionOpened(this, _context, sw.ElapsedMilliseconds); + _hooks.ConnectionOpened(this, _context, GetElapsedMilliseconds(start, Stopwatch.GetTimestamp())); } protected override DbCommand CreateDbCommand() => @@ -70,6 +70,11 @@ protected override void Dispose(bool disposing) _connection?.Dispose(); base.Dispose(disposing); + } + + double GetElapsedMilliseconds(long start, long stop) + { + return (stop - start) * 1000 / (double)Stopwatch.Frequency; } } } diff --git a/src/Dapper.Logging/LoggingHook.cs b/src/Dapper.Logging/LoggingHook.cs index bcf7362..c73167f 100644 --- a/src/Dapper.Logging/LoggingHook.cs +++ b/src/Dapper.Logging/LoggingHook.cs @@ -19,7 +19,7 @@ public LoggingHook(ILogger logger, DbLoggingConfiguration config) _connectionProjector = _config.ConnectionProjector ?? (_ => Empty.Object); } - public void ConnectionOpened(DbConnection connection, T context, long elapsedMs) => + public void ConnectionOpened(DbConnection connection, T context, double elapsedMs) => _logger.Log( _config.LogLevel, _config.OpenConnectionMessage, @@ -27,7 +27,7 @@ public void ConnectionOpened(DbConnection connection, T context, long elapsedMs) context, _connectionProjector(connection)); - public void ConnectionClosed(DbConnection connection, T context, long elapsedMs) => + public void ConnectionClosed(DbConnection connection, T context, double elapsedMs) => _logger.Log( _config.LogLevel, _config.CloseConnectionMessage, @@ -35,7 +35,7 @@ public void ConnectionClosed(DbConnection connection, T context, long elapsedMs) context, _connectionProjector(connection)); - public void CommandExecuted(DbCommand command, T context, long elapsedMs) => + public void CommandExecuted(DbCommand command, T context, double elapsedMs) => _logger.Log( _config.LogLevel, _config.ExecuteQueryMessage,