mirror of
				https://github.com/JKorf/CryptoExchange.Net
				synced 2025-10-31 10:27:48 +00:00 
			
		
		
		
	Added extra debug messages
This commit is contained in:
		
							parent
							
								
									8299b0b147
								
							
						
					
					
						commit
						2da2bcf96b
					
				| @ -3550,3 +3550,148 @@ | |||||||
|         </member> |         </member> | ||||||
|     </members> |     </members> | ||||||
| </doc> | </doc> | ||||||
|  | System.Diagnostics.CodeAnalysis.AllowNullAttribute"> | ||||||
|  |             <summary> | ||||||
|  |                 Specifies that <see langword="null"/> is allowed as an input even if the | ||||||
|  |                 corresponding type disallows it. | ||||||
|  |             </summary> | ||||||
|  |         </member> | ||||||
|  |         <member name="M:System.Diagnostics.CodeAnalysis.AllowNullAttribute.#ctor"> | ||||||
|  |             <summary> | ||||||
|  |                 Initializes a new instance of the <see cref="T:System.Diagnostics.CodeAnalysis.AllowNullAttribute"/> class. | ||||||
|  |             </summary> | ||||||
|  |         </member> | ||||||
|  |         <member name="T:System.Diagnostics.CodeAnalysis.DisallowNullAttribute"> | ||||||
|  |             <summary> | ||||||
|  |                 Specifies that <see langword="null"/> is disallowed as an input even if the | ||||||
|  |                 corresponding type allows it. | ||||||
|  |             </summary> | ||||||
|  |         </member> | ||||||
|  |         <member name="M:System.Diagnostics.CodeAnalysis.DisallowNullAttribute.#ctor"> | ||||||
|  |             <summary> | ||||||
|  |                 Initializes a new instance of the <see cref="T:System.Diagnostics.CodeAnalysis.DisallowNullAttribute"/> class. | ||||||
|  |             </summary> | ||||||
|  |         </member> | ||||||
|  |         <member name="T:System.Diagnostics.CodeAnalysis.DoesNotReturnAttribute"> | ||||||
|  |             <summary> | ||||||
|  |                 Specifies that a method that will never return under any circumstance. | ||||||
|  |             </summary> | ||||||
|  |         </member> | ||||||
|  |         <member name="M:System.Diagnostics.CodeAnalysis.DoesNotReturnAttribute.#ctor"> | ||||||
|  |             <summary> | ||||||
|  |                 Initializes a new instance of the <see cref="T:System.Diagnostics.CodeAnalysis.DoesNotReturnAttribute"/> class. | ||||||
|  |             </summary> | ||||||
|  |         </member> | ||||||
|  |         <member name="T:System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute"> | ||||||
|  |             <summary> | ||||||
|  |                 Specifies that the method will not return if the associated <see cref="T:System.Boolean"/> | ||||||
|  |                 parameter is passed the specified value. | ||||||
|  |             </summary> | ||||||
|  |         </member> | ||||||
|  |         <member name="P:System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute.ParameterValue"> | ||||||
|  |             <summary> | ||||||
|  |                 Gets the condition parameter value. | ||||||
|  |                 Code after the method is considered unreachable by diagnostics if the argument | ||||||
|  |                 to the associated parameter matches this value. | ||||||
|  |             </summary> | ||||||
|  |         </member> | ||||||
|  |         <member name="M:System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute.#ctor(System.Boolean)"> | ||||||
|  |             <summary> | ||||||
|  |                 Initializes a new instance of the <see cref="T:System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute"/> | ||||||
|  |                 class with the specified parameter value. | ||||||
|  |             </summary> | ||||||
|  |             <param name="parameterValue"> | ||||||
|  |                 The condition parameter value. | ||||||
|  |                 Code after the method is considered unreachable by diagnostics if the argument | ||||||
|  |                 to the associated parameter matches this value. | ||||||
|  |             </param> | ||||||
|  |         </member> | ||||||
|  |         <member name="T:System.Diagnostics.CodeAnalysis.MaybeNullAttribute"> | ||||||
|  |             <summary> | ||||||
|  |                 Specifies that an output may be <see langword="null"/> even if the | ||||||
|  |                 corresponding type disallows it. | ||||||
|  |             </summary> | ||||||
|  |         </member> | ||||||
|  |         <member name="M:System.Diagnostics.CodeAnalysis.MaybeNullAttribute.#ctor"> | ||||||
|  |             <summary> | ||||||
|  |                 Initializes a new instance of the <see cref="T:System.Diagnostics.CodeAnalysis.MaybeNullAttribute"/> class. | ||||||
|  |             </summary> | ||||||
|  |         </member> | ||||||
|  |         <member name="T:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute"> | ||||||
|  |             <summary> | ||||||
|  |                 Specifies that when a method returns <see cref="P:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute.ReturnValue"/>,  | ||||||
|  |                 the parameter may be <see langword="null"/> even if the corresponding type disallows it. | ||||||
|  |             </summary> | ||||||
|  |         </member> | ||||||
|  |         <member name="P:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute.ReturnValue"> | ||||||
|  |             <summary> | ||||||
|  |                 Gets the return value condition. | ||||||
|  |                 If the method returns this value, the associated parameter may be <see langword="null"/>. | ||||||
|  |             </summary> | ||||||
|  |         </member> | ||||||
|  |         <member name="M:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute.#ctor(System.Boolean)"> | ||||||
|  |             <summary> | ||||||
|  |                  Initializes the attribute with the specified return value condition. | ||||||
|  |             </summary> | ||||||
|  |             <param name="returnValue"> | ||||||
|  |                 The return value condition. | ||||||
|  |                 If the method returns this value, the associated parameter may be <see langword="null"/>. | ||||||
|  |             </param> | ||||||
|  |         </member> | ||||||
|  |         <member name="T:System.Diagnostics.CodeAnalysis.NotNullAttribute"> | ||||||
|  |             <summary> | ||||||
|  |                 Specifies that an output is not <see langword="null"/> even if the | ||||||
|  |                 corresponding type allows it. | ||||||
|  |             </summary> | ||||||
|  |         </member> | ||||||
|  |         <member name="M:System.Diagnostics.CodeAnalysis.NotNullAttribute.#ctor"> | ||||||
|  |             <summary> | ||||||
|  |                 Initializes a new instance of the <see cref="T:System.Diagnostics.CodeAnalysis.NotNullAttribute"/> class. | ||||||
|  |             </summary> | ||||||
|  |         </member> | ||||||
|  |         <member name="T:System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute"> | ||||||
|  |             <summary> | ||||||
|  |                 Specifies that the output will be non-<see langword="null"/> if the | ||||||
|  |                 named parameter is non-<see langword="null"/>. | ||||||
|  |             </summary> | ||||||
|  |         </member> | ||||||
|  |         <member name="P:System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute.ParameterName"> | ||||||
|  |             <summary> | ||||||
|  |                 Gets the associated parameter name. | ||||||
|  |                 The output will be non-<see langword="null"/> if the argument to the | ||||||
|  |                 parameter specified is non-<see langword="null"/>. | ||||||
|  |             </summary> | ||||||
|  |         </member> | ||||||
|  |         <member name="M:System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute.#ctor(System.String)"> | ||||||
|  |             <summary> | ||||||
|  |                 Initializes the attribute with the associated parameter name. | ||||||
|  |             </summary> | ||||||
|  |             <param name="parameterName"> | ||||||
|  |                 The associated parameter name. | ||||||
|  |                 The output will be non-<see langword="null"/> if the argument to the | ||||||
|  |                 parameter specified is non-<see langword="null"/>. | ||||||
|  |             </param> | ||||||
|  |         </member> | ||||||
|  |         <member name="T:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute"> | ||||||
|  |             <summary> | ||||||
|  |                 Specifies that when a method returns <see cref="P:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.ReturnValue"/>, | ||||||
|  |                 the parameter will not be <see langword="null"/> even if the corresponding type allows it. | ||||||
|  |             </summary> | ||||||
|  |         </member> | ||||||
|  |         <member name="P:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.ReturnValue"> | ||||||
|  |             <summary> | ||||||
|  |                 Gets the return value condition. | ||||||
|  |                 If the method returns this value, the associated parameter will not be <see langword="null"/>. | ||||||
|  |             </summary> | ||||||
|  |         </member> | ||||||
|  |         <member name="M:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.#ctor(System.Boolean)"> | ||||||
|  |             <summary> | ||||||
|  |                 Initializes the attribute with the specified return value condition. | ||||||
|  |             </summary> | ||||||
|  |             <param name="returnValue"> | ||||||
|  |                 The return value condition. | ||||||
|  |                 If the method returns this value, the associated parameter will not be <see langword="null"/>. | ||||||
|  |             </param> | ||||||
|  |         </member> | ||||||
|  |     </members> | ||||||
|  | </doc> | ||||||
|  | |||||||
| @ -10,6 +10,7 @@ using CryptoExchange.Net.Interfaces; | |||||||
| using CryptoExchange.Net.Logging; | using CryptoExchange.Net.Logging; | ||||||
| using CryptoExchange.Net.Objects; | using CryptoExchange.Net.Objects; | ||||||
| using CryptoExchange.Net.Sockets; | using CryptoExchange.Net.Sockets; | ||||||
|  | using Newtonsoft.Json; | ||||||
| using Newtonsoft.Json.Linq; | using Newtonsoft.Json.Linq; | ||||||
| 
 | 
 | ||||||
| namespace CryptoExchange.Net | namespace CryptoExchange.Net | ||||||
| @ -78,6 +79,11 @@ namespace CryptoExchange.Net | |||||||
|         /// If false; data which is a response to a query won't get forwarded to subscriptions as well |         /// If false; data which is a response to a query won't get forwarded to subscriptions as well | ||||||
|         /// </summary> |         /// </summary> | ||||||
|         protected internal bool ContinueOnQueryResponse { get; protected set; } |         protected internal bool ContinueOnQueryResponse { get; protected set; } | ||||||
|  | 
 | ||||||
|  |         /// <summary> | ||||||
|  |         /// If a message is received on the socket which is not handled by a handler this boolean determines whether this logs an error message | ||||||
|  |         /// </summary> | ||||||
|  |         protected internal bool UnhandledMessageExpected { get; set; } | ||||||
|         #endregion |         #endregion | ||||||
| 
 | 
 | ||||||
|         /// <summary> |         /// <summary> | ||||||
| @ -150,9 +156,14 @@ namespace CryptoExchange.Net | |||||||
|                     released = true; |                     released = true; | ||||||
|                 } |                 } | ||||||
| 
 | 
 | ||||||
|  |                 var needsconnecting = !socket.Connected; | ||||||
|  | 
 | ||||||
|                 var connectResult = await ConnectIfNeeded(socket, authenticated).ConfigureAwait(false); |                 var connectResult = await ConnectIfNeeded(socket, authenticated).ConfigureAwait(false); | ||||||
|                 if (!connectResult) |                 if (!connectResult) | ||||||
|                     return new CallResult<UpdateSubscription>(null, connectResult.Error); |                     return new CallResult<UpdateSubscription>(null, connectResult.Error); | ||||||
|  | 
 | ||||||
|  |                 if (needsconnecting) | ||||||
|  |                     log.Write(LogVerbosity.Debug, $"Socket {socket.Socket.Id} connected to {url} {(request == null ? "with topic " + identifier: "with request " + JsonConvert.SerializeObject(request))}"); | ||||||
|             } |             } | ||||||
|             finally |             finally | ||||||
|             { |             { | ||||||
|  | |||||||
| @ -178,6 +178,7 @@ namespace CryptoExchange.Net.Sockets | |||||||
|              |              | ||||||
|             if (!HandleData(tokenData) && !handledResponse) |             if (!HandleData(tokenData) && !handledResponse) | ||||||
|             { |             { | ||||||
|  |                 if (!socketClient.UnhandledMessageExpected) | ||||||
|                     log.Write(LogVerbosity.Warning, "Message not handled: " + tokenData); |                     log.Write(LogVerbosity.Warning, "Message not handled: " + tokenData); | ||||||
|                 UnhandledMessage?.Invoke(tokenData); |                 UnhandledMessage?.Invoke(tokenData); | ||||||
|             } |             } | ||||||
| @ -229,6 +230,8 @@ namespace CryptoExchange.Net.Sockets | |||||||
|                 if (sw.ElapsedMilliseconds > 500) |                 if (sw.ElapsedMilliseconds > 500) | ||||||
|                     log.Write(LogVerbosity.Warning, $"Socket {Socket.Id} message processing slow ({sw.ElapsedMilliseconds}ms), consider offloading data handling to another thread. " + |                     log.Write(LogVerbosity.Warning, $"Socket {Socket.Id} message processing slow ({sw.ElapsedMilliseconds}ms), consider offloading data handling to another thread. " + | ||||||
|                                                     "Data from this socket may arrive late or not at all if message processing is continuously slow."); |                                                     "Data from this socket may arrive late or not at all if message processing is continuously slow."); | ||||||
|  |                 else | ||||||
|  |                     log.Write(LogVerbosity.Debug, $"Socket {Socket.Id} message processed in {sw.ElapsedMilliseconds}ms"); | ||||||
|                 return handled; |                 return handled; | ||||||
|             } |             } | ||||||
|             catch (Exception ex) |             catch (Exception ex) | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user