Skip to content

Commit 4d25fdf

Browse files
committed
Log association elapsed time
Signed-off-by: Victor Chang <[email protected]>
1 parent 3bd0921 commit 4d25fdf

File tree

2 files changed

+11
-3
lines changed

2 files changed

+11
-3
lines changed

src/InformaticsGateway/Logging/Log.100.200.ScpService.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,8 @@ public static partial class Log
8686
[LoggerMessage(EventId = 208, Level = LogLevel.Warning, Message = "Aborted {source} with reason {reason}.")]
8787
public static partial void CStoreAbort(this ILogger logger, DicomAbortSource source, DicomAbortReason reason);
8888

89-
[LoggerMessage(EventId = 209, Level = LogLevel.Information, Message = "Association release request received.")]
90-
public static partial void CStoreAssociationReleaseRequest(this ILogger logger);
89+
[LoggerMessage(EventId = 209, Level = LogLevel.Information, Message = "Association release request received. Connection Time: {elapsedTime}.")]
90+
public static partial void CStoreAssociationReleaseRequest(this ILogger logger, TimeSpan elapsedTime);
9191

9292
[LoggerMessage(EventId = 210, Level = LogLevel.Information, Message = "Association received from {host}:{port}.")]
9393
public static partial void CStoreAssociationReceived(this ILogger logger, string host, int port);

src/InformaticsGateway/Services/Scp/ScpServiceInternal.cs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ internal class ScpServiceInternal :
4141
private IApplicationEntityManager _associationDataProvider;
4242
private IDisposable _loggerScope;
4343
private Guid _associationId;
44+
private DateTimeOffset? _associationReceived;
4445

4546
public ScpServiceInternal(INetworkStream stream, Encoding fallbackEncoding, FellowOakDicom.Log.ILogger log, DicomServiceDependencies dicomServiceDependencies)
4647
: base(stream, fallbackEncoding, log, dicomServiceDependencies)
@@ -106,13 +107,20 @@ public void OnReceiveAbort(DicomAbortSource source, DicomAbortReason reason)
106107
/// <returns></returns>
107108
public Task OnReceiveAssociationReleaseRequestAsync()
108109
{
109-
_logger?.CStoreAssociationReleaseRequest();
110+
var associationElapsed = TimeSpan.Zero;
111+
if (_associationReceived.HasValue)
112+
{
113+
associationElapsed = DateTimeOffset.UtcNow.Subtract(_associationReceived.Value);
114+
}
115+
116+
_logger?.CStoreAssociationReleaseRequest(associationElapsed);
110117
return SendAssociationReleaseResponseAsync();
111118
}
112119

113120
public Task OnReceiveAssociationRequestAsync(DicomAssociation association)
114121
{
115122
Interlocked.Increment(ref ScpService.ActiveConnections);
123+
_associationReceived = DateTimeOffset.UtcNow;
116124
_associationDataProvider = UserState as IApplicationEntityManager;
117125

118126
if (_associationDataProvider is null)

0 commit comments

Comments
 (0)