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:
parent
020893fcbf
commit
46a37937e5
@ -177,7 +177,7 @@ namespace CryptoExchange.Net.UnitTests
|
||||
{
|
||||
ApiCredentials = new ApiCredentials("Test", "Test2"),
|
||||
LogVerbosity = verbosity,
|
||||
LogWriter = tw
|
||||
LogWriters = new List<TextWriter>() { tw }
|
||||
});
|
||||
}
|
||||
else
|
||||
|
@ -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>
|
||||
|
@ -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");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
@ -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)
|
||||
{
|
||||
if ((int)logType >= (int)Level)
|
||||
TextWriter.WriteLine($"{DateTime.Now:hh:mm:ss:fff} | {logType} | {message}");
|
||||
foreach (var writer in writers)
|
||||
{
|
||||
try
|
||||
{
|
||||
if ((int) logType >= (int) Level)
|
||||
writer.WriteLine($"{DateTime.Now:yyyy/MM/dd hh:mm:ss:fff} | {logType} | {message}");
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Debug.WriteLine("Failed to write log: " + e.Message);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user