1
0
mirror of https://github.com/JKorf/CryptoExchange.Net synced 2025-06-07 16:06:15 +00:00

Additional logging

This commit is contained in:
JKorf 2018-03-05 14:13:12 +01:00
parent edcf91ca7c
commit cce7fb8075
2 changed files with 32 additions and 5 deletions

View File

@ -43,6 +43,8 @@ namespace CryptoExchange.Net
log.Level = exchangeOptions.LogVerbosity; log.Level = exchangeOptions.LogVerbosity;
apiProxy = exchangeOptions.Proxy; apiProxy = exchangeOptions.Proxy;
if(apiProxy != null)
log.Write(LogVerbosity.Info, $"Setting api proxy to {exchangeOptions.Proxy.Host}:{exchangeOptions.Proxy.Port}");
rateLimiters = new List<IRateLimiter>(); rateLimiters = new List<IRateLimiter>();
foreach (var rateLimiter in exchangeOptions.RateLimiters) foreach (var rateLimiter in exchangeOptions.RateLimiters)
@ -72,6 +74,7 @@ namespace CryptoExchange.Net
/// <param name="authentictationProvider"></param> /// <param name="authentictationProvider"></param>
protected void SetAuthenticationProvider(AuthenticationProvider authentictationProvider) protected void SetAuthenticationProvider(AuthenticationProvider authentictationProvider)
{ {
log.Write(LogVerbosity.Debug, "Setting api credentials");
authProvider = authentictationProvider; authProvider = authentictationProvider;
} }
@ -92,7 +95,7 @@ namespace CryptoExchange.Net
log.Write(LogVerbosity.Debug, $"Request {uri.AbsolutePath} was limited by {limitedBy}ms by {limiter.GetType().Name}"); log.Write(LogVerbosity.Debug, $"Request {uri.AbsolutePath} was limited by {limitedBy}ms by {limiter.GetType().Name}");
} }
log.Write(LogVerbosity.Debug, $"Sending request to {request.Uri}"); log.Write(LogVerbosity.Debug, $"Sending {(signed ? "signed": "")} request to {request.Uri}");
var result = await ExecuteRequest(request).ConfigureAwait(false); var result = await ExecuteRequest(request).ConfigureAwait(false);
return result.Error != null ? new CallResult<T>(null, result.Error) : Deserialize<T>(result.Data); return result.Error != null ? new CallResult<T>(null, result.Error) : Deserialize<T>(result.Data);
} }
@ -140,6 +143,7 @@ namespace CryptoExchange.Net
{ {
var reader = new StreamReader(response.GetResponseStream()); var reader = new StreamReader(response.GetResponseStream());
var responseData = await reader.ReadToEndAsync().ConfigureAwait(false); var responseData = await reader.ReadToEndAsync().ConfigureAwait(false);
log.Write(LogVerbosity.Warning, "Server returned an error: " + responseData);
return new CallResult<string>(null, ParseErrorResponse(responseData)); return new CallResult<string>(null, ParseErrorResponse(responseData));
} }
catch (Exception) catch (Exception)
@ -148,13 +152,18 @@ namespace CryptoExchange.Net
var infoMessage = "No response from server"; var infoMessage = "No response from server";
if (response == null) if (response == null)
{
log.Write(LogVerbosity.Warning, infoMessage);
return new CallResult<string>(null, new WebError(infoMessage)); return new CallResult<string>(null, new WebError(infoMessage));
}
infoMessage = $"Status: {response.StatusCode}-{response.StatusDescription}, Message: {we.Message}"; infoMessage = $"Status: {response.StatusCode}-{response.StatusDescription}, Message: {we.Message}";
log.Write(LogVerbosity.Warning, infoMessage);
return new CallResult<string>(null, new ServerError(infoMessage)); return new CallResult<string>(null, new ServerError(infoMessage));
} }
catch (Exception e) catch (Exception e)
{ {
log.Write(LogVerbosity.Error, $"Unkown error occured: {e.GetType()}, {e.Message}, {e.StackTrace}");
return new CallResult<string>(null, new UnknownError(e.Message + ", data: " + returnedData)); return new CallResult<string>(null, new UnknownError(e.Message + ", data: " + returnedData));
} }
} }
@ -185,11 +194,15 @@ namespace CryptoExchange.Net
} }
catch (JsonReaderException jre) catch (JsonReaderException jre)
{ {
return new CallResult<T>(null, new DeserializeError($"Error occured at Path: {jre.Path}, LineNumber: {jre.LineNumber}, LinePosition: {jre.LinePosition}. Received data: {data}")); var info = $"{jre.Message}, Path: {jre.Path}, LineNumber: {jre.LineNumber}, LinePosition: {jre.LinePosition}. Received data: {data}";
log.Write(LogVerbosity.Error, info);
return new CallResult<T>(null, new DeserializeError(info));
} }
catch (JsonSerializationException jse) catch (JsonSerializationException jse)
{ {
return new CallResult<T>(null, new DeserializeError($"Message: {jse.Message}. Received data: {data}")); var info = $"{jse.Message}. Received data: {data}";
log.Write(LogVerbosity.Error, info);
return new CallResult<T>(null, new DeserializeError(info));
} }
} }

View File

@ -6,7 +6,20 @@ namespace CryptoExchange.Net.Logging
public class Log public class Log
{ {
public TextWriter TextWriter { get; internal set; } = new DebugTextWriter(); public TextWriter TextWriter { get; internal set; } = new DebugTextWriter();
public LogVerbosity Level { get; internal set; } = LogVerbosity.Warning; private LogVerbosity level = LogVerbosity.Info;
public LogVerbosity Level
{
get => level;
set
{
if (level != value)
{
Write(LogVerbosity.Info, "Loglevel set to " + value);
level = value;
}
}
}
public void Write(LogVerbosity logType, string message) public void Write(LogVerbosity logType, string message)
{ {
@ -18,6 +31,7 @@ namespace CryptoExchange.Net.Logging
public enum LogVerbosity public enum LogVerbosity
{ {
Debug, Debug,
Info,
Warning, Warning,
Error, Error,
None None