Skip to content

Commit

Permalink
Better logging
Browse files Browse the repository at this point in the history
  • Loading branch information
ShortDevelopment committed Oct 29, 2023
1 parent cc5f6c1 commit 10e5204
Show file tree
Hide file tree
Showing 4 changed files with 40 additions and 19 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,8 @@ void HandleStartTransfer(CdpMessage msg, ValueSet payload)
{
var fileNames = payload.Get<List<string>>("FileNames");

_logger.LogInformation("Receiving file \"{fileNames}\" from session {sessionId:X} via {transportType}",
string.Join(", ", fileNames),
_logger.LogInformation("Receiving file {FileNames} from session {SessionId:X} via {TransportType}",
fileNames,
msg.Header.SessionId,
Channel.Socket.TransportType
);
Expand Down Expand Up @@ -85,9 +85,10 @@ void HandleStartTransfer(CdpMessage msg, ValueSet payload)
case DataKind.Uri:
{
var uri = payload.Get<string>("Uri");
_logger.LogInformation("Received uri \"{uri}\" from session {sessionId:X}",
_logger.LogInformation("Received uri {Uri} from session {SessionId:X} via {TransportType}",
uri,
msg.Header.SessionId
msg.Header.SessionId,
Channel.Socket.TransportType
);
PlatformHandler.OnReceivedUri(new()
{
Expand Down
26 changes: 24 additions & 2 deletions ShortDev.Microsoft.ConnectedDevices/CdpLog.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
using Microsoft.Extensions.Logging;
using ShortDev.Microsoft.ConnectedDevices.Messages.Connection;
using ShortDev.Microsoft.ConnectedDevices.Messages.Connection.TransportUpgrade;
using ShortDev.Microsoft.ConnectedDevices.Messages.Control;
using ShortDev.Microsoft.ConnectedDevices.Transports;
using System;
using System.Collections.Generic;

namespace ShortDev.Microsoft.ConnectedDevices;

Expand All @@ -26,9 +29,28 @@ internal static partial class CdpLog



[LoggerMessage(EventId = 201, Level = LogLevel.Warning, Message = "Exception in session {SessionId:X}")]
[LoggerMessage(EventId = 201, Level = LogLevel.Error, Message = "Exception in session {SessionId:X}")]
public static partial void ExceptionInSession(this ILogger logger, Exception ex, ulong sessionId);

[LoggerMessage(EventId = 202, Level = LogLevel.Warning, Message = "Exception in receive loop for transport {TransportType}")]
[LoggerMessage(EventId = 202, Level = LogLevel.Error, Message = "Exception in receive loop for transport {TransportType}")]
public static partial void ExceptionInReceiveLoop(this ILogger logger, Exception ex, CdpTransportType transportType);

[LoggerMessage(EventId = 203, Level = LogLevel.Debug, Message = "Received connect message {ConectMessageType} from session {SessionId:X} via {TransportType}")]
public static partial void ReceivedConnectMessage(this ILogger logger, ConnectionType conectMessageType, ulong sessionId, CdpTransportType transportType);

[LoggerMessage(EventId = 204, Level = LogLevel.Debug, Message = "Received control message {ControlMessageType} from session {SessionId:X} via {TransportType}")]
public static partial void ReceivedControlMessage(this ILogger logger, ControlMessageType controlMessageType, ulong sessionId, CdpTransportType transportType);


[LoggerMessage(EventId = 301, Level = LogLevel.Debug, Message = "Upgrade request {UpgradeId} to {UpgradeTypes}")]
public static partial void UpgradeRequest(this ILogger logger, Guid upgradeId, IEnumerable<CdpTransportType> upgradeTypes);

[LoggerMessage(EventId = 302, Level = LogLevel.Debug, Message = "Finalizing upgrade to {UpgradeTypes}")]
public static partial void UpgradeFinalization(this ILogger logger, IEnumerable<CdpTransportType> upgradeTypes);

[LoggerMessage(EventId = 303, Level = LogLevel.Information, Message = "Transport upgrade {UpgradeId} {UpgradeStatus}")]
public static partial void UpgradeTransportRequest(this ILogger logger, Guid upgradeId, string upgradeStatus);

[LoggerMessage(EventId = 304, Level = LogLevel.Warning, Message = "Upgrade failed")]
public static partial void UpgradeFailed(this ILogger logger, Exception ex);
}
8 changes: 3 additions & 5 deletions ShortDev.Microsoft.ConnectedDevices/CdpSession.cs
Original file line number Diff line number Diff line change
Expand Up @@ -250,8 +250,7 @@ public async Task ConnectAsync(CdpSocket socket, bool upgradeSupported = true)
public void HandleConnect(CdpSocket socket, CommonHeader header, ref EndianReader reader)
{
ConnectionHeader connectionHeader = ConnectionHeader.Parse(ref reader);
_logger.LogDebug("Received {headerType} message {messageType} from session {sessionId:X} via {transportType}",
header.Type,
_logger.ReceivedConnectMessage(
connectionHeader.MessageType,
header.SessionId,
socket.TransportType
Expand Down Expand Up @@ -438,7 +437,7 @@ async void PrepareSession(CdpSocket socket)
}
catch (Exception ex)
{
_logger.LogError(ex, "Upgrade failed");
_logger.UpgradeFailed(ex);
}
}

Expand Down Expand Up @@ -519,8 +518,7 @@ void HandleControl(CommonHeader header, ref EndianReader reader, CdpSocket socke
throw UnexpectedMessage("Encryption");

var controlHeader = ControlHeader.Parse(ref reader);
_logger.LogDebug("Received {headerType} message {messageType} from session {sessionId:X} via {transportType}",
header.Type,
_logger.ReceivedControlMessage(
controlHeader.MessageType,
header.SessionId,
socket.TransportType
Expand Down
16 changes: 8 additions & 8 deletions ShortDev.Microsoft.ConnectedDevices/Internal/UpgradeHandler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ void HandleTransportRequest(CdpSocket socket, ref EndianReader reader)
allowed = true;
}

_logger.LogInformation("Transport upgrade {upgradeId} {upgradeStatus}",
_logger.UpgradeTransportRequest(
msg.UpgradeId,
allowed ? "succeeded" : "failed"
);
Expand All @@ -125,9 +125,9 @@ void HandleTransportRequest(CdpSocket socket, ref EndianReader reader)
void HandleUpgradeRequest(CdpSocket socket, ref EndianReader reader)
{
var msg = UpgradeRequest.Parse(ref reader);
_logger.LogInformation("Upgrade request {upgradeId} to {upgradeTypes}",
_logger.UpgradeRequest(
msg.UpgradeId,
string.Join(',', msg.Endpoints.Select((x) => x.Type.ToString()))
msg.Endpoints.Select((x) => x.Type)
);

CommonHeader header = new()
Expand Down Expand Up @@ -180,8 +180,8 @@ void HandleUpgradeRequest(CdpSocket socket, ref EndianReader reader)
void HandleUpgradeFinalization(CdpSocket socket, ref EndianReader reader)
{
var msg = EndpointMetadata.ParseArray(ref reader);
_logger.LogInformation("Transport upgrade to {upgradeTypes}",
string.Join(',', msg.Select((x) => x.Type.ToString()))
_logger.UpgradeFinalization(
msg.Select((x) => x.Type)
);

CommonHeader header = new()
Expand All @@ -204,9 +204,9 @@ void HandleUpgradeFailure(ref EndianReader reader)
{
var msg = HResultPayload.Parse(ref reader);

var errorMsg = $"Transport upgrade failed with HResult {msg.HResult} (hresult: {HResultPayload.HResultToString(msg.HResult)}, errorCode: {HResultPayload.ErrorCodeToString(msg.HResult)})";
_logger.LogWarning(errorMsg);
_currentUpgrade?.Promise.TrySetException(new Exception(errorMsg));
_currentUpgrade?.Promise.TrySetException(
new Exception($"Transport upgrade failed with HResult {msg.HResult} (hresult: {HResultPayload.HResultToString(msg.HResult)}, errorCode: {HResultPayload.ErrorCodeToString(msg.HResult)})")
);
}

#region Client
Expand Down

0 comments on commit 10e5204

Please sign in to comment.