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

Updated logging, added pinging settings to websocket

This commit is contained in:
JKorf 2018-03-21 10:49:08 +01:00
parent 020893fcbf
commit 46a37937e5
7 changed files with 49 additions and 10 deletions

View File

@ -177,7 +177,7 @@ namespace CryptoExchange.Net.UnitTests
{
ApiCredentials = new ApiCredentials("Test", "Test2"),
LogVerbosity = verbosity,
LogWriter = tw
LogWriters = new List<TextWriter>() { tw }
});
}
else

View File

@ -7,7 +7,7 @@
<PropertyGroup>
<PackageId>CryptoExchange.Net</PackageId>
<Authors>JKorf</Authors>
<PackageVersion>0.0.12</PackageVersion>
<PackageVersion>0.0.13</PackageVersion>
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
<PackageProjectUrl>https://github.com/JKorf/CryptoExchange.Net</PackageProjectUrl>
<PackageLicenseUrl>https://github.com/JKorf/CryptoExchange.Net/blob/master/LICENSE</PackageLicenseUrl>

View File

@ -38,10 +38,9 @@ namespace CryptoExchange.Net
/// <param name="exchangeOptions">Options</param>
protected void Configure(ExchangeOptions exchangeOptions)
{
if (exchangeOptions.LogWriter != null)
log.TextWriter = exchangeOptions.LogWriter;
log.UpdateWriters(exchangeOptions.LogWriters);
log.Level = exchangeOptions.LogVerbosity;
apiProxy = exchangeOptions.Proxy;
if(apiProxy != null)
log.Write(LogVerbosity.Info, $"Setting api proxy to {exchangeOptions.Proxy.Host}:{exchangeOptions.Proxy.Port}");
@ -292,6 +291,7 @@ namespace CryptoExchange.Net
public virtual void Dispose()
{
log.Write(LogVerbosity.Debug, "Disposing exchange client");
}
}
}

View File

@ -28,9 +28,9 @@ namespace CryptoExchange.Net
public LogVerbosity LogVerbosity { get; set; } = LogVerbosity.Info;
/// <summary>
/// The log writer
/// The log writers
/// </summary>
public TextWriter LogWriter { get; set; } = new DebugTextWriter();
public List<TextWriter> LogWriters { get; set; } = new List<TextWriter>() {new DebugTextWriter()};
/// <summary>
/// List of ratelimiters to use

View File

@ -23,6 +23,18 @@ namespace CryptoExchange.Net.Implementation
public bool IsClosed => socket.State == WebSocketState.Closed;
public bool IsOpen => socket.State == WebSocketState.Open;
public bool PingConnection
{
get => socket.EnableAutoSendPing;
set => socket.EnableAutoSendPing = value;
}
public TimeSpan PingInterval
{
get => TimeSpan.FromSeconds(socket.AutoSendPingInterval);
set => socket.AutoSendPingInterval = (int) Math.Round(value.TotalSeconds);
}
public BaseSocket(string url):this(url, new Dictionary<string, string>(), new Dictionary<string, string>())
{
}
@ -36,6 +48,8 @@ namespace CryptoExchange.Net.Implementation
socket.Closed += (o, s) => Handle(closehandlers);
socket.Error += (o, s) => Handle(errorhandlers, s.Exception);
socket.MessageReceived += (o, s) => Handle(messagehandlers, s.Message);
socket.EnableAutoSendPing = true;
socket.AutoSendPingInterval = 10;
}
public event Action OnClose

View File

@ -15,6 +15,8 @@ namespace CryptoExchange.Net.Interfaces
bool IsClosed { get; }
bool IsOpen { get; }
bool PingConnection { get; set; }
TimeSpan PingInterval { get; set; }
Task<bool> Connect();
void Send(string data);

View File

@ -1,11 +1,14 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
namespace CryptoExchange.Net.Logging
{
public class Log
{
public TextWriter TextWriter { get; internal set; } = new DebugTextWriter();
private List<TextWriter> writers;
private LogVerbosity level = LogVerbosity.Info;
public LogVerbosity Level
@ -21,10 +24,30 @@ namespace CryptoExchange.Net.Logging
}
}
public Log()
{
writers = new List<TextWriter>();
}
public void UpdateWriters(List<TextWriter> textWriters)
{
writers = textWriters;
}
public void Write(LogVerbosity logType, string message)
{
foreach (var writer in writers)
{
try
{
if ((int) logType >= (int) Level)
TextWriter.WriteLine($"{DateTime.Now:hh:mm:ss:fff} | {logType} | {message}");
writer.WriteLine($"{DateTime.Now:yyyy/MM/dd hh:mm:ss:fff} | {logType} | {message}");
}
catch (Exception e)
{
Debug.WriteLine("Failed to write log: " + e.Message);
}
}
}
}