diff --git a/Utilities/Logging.cs b/Utilities/Logging.cs index 14a217cf08..10e055122e 100644 --- a/Utilities/Logging.cs +++ b/Utilities/Logging.cs @@ -97,30 +97,38 @@ private static string PrepareMessage ( string message, string memberName, string return message; } - private static Dictionary PrepareData ( [CanBeNull] JToken data ) + private static Dictionary PrepareData ( [ CanBeNull ] JToken data ) { if ( data == null ) { return null; } - if ( data.Type == JTokenType.String && !JsonRegex.IsMatch( data.ToString() ) ) - { - return WrapData( "message", Redaction.RedactEnvironmentVariables( data.ToString() ) ); - } - else + + if ( data.Type == JTokenType.String ) { - try + if ( JsonRegex.IsMatch( data.ToString() ) ) { - data = Redaction.RedactEnvironmentVariables( data ); - data = Redaction.RedactPersonalProperties( data ); - if ( data is JObject ) - { - return data.ToObject>(); - } - return WrapData( "data", data ); + var jToken = JToken.Parse( data.ToString() ); + data = jToken; } - catch ( ObjectDisposedException ) + else { - return null; + return WrapData( "message", Redaction.RedactEnvironmentVariables( data.ToString() ) ); } } + + try + { + data = Redaction.RedactEnvironmentVariables( data ); + data = Redaction.RedactPersonalProperties( data ); + if ( data is JObject ) + { + return data.ToObject>(); + } + + return WrapData( "data", data ); + } + catch ( ObjectDisposedException ) + { + return null; + } } private static Dictionary WrapData ( string key, object data ) diff --git a/Utilities/Redaction.cs b/Utilities/Redaction.cs index fddda883ac..05e8e518d3 100644 --- a/Utilities/Redaction.cs +++ b/Utilities/Redaction.cs @@ -94,7 +94,8 @@ public static JToken RedactEnvironmentVariables ( JToken data ) { RedactEnvironmentVariables( data.ToString() ); } - else if ( data is JObject objectData ) + + if ( data is JObject objectData ) { objectData.Descendants() .OfType()