1
0
mirror of https://github.com/JKorf/CryptoExchange.Net.git synced 2026-08-11 16:32:57 +00:00

Added logging docs

Jkorf
2021-12-15 16:50:54 +01:00
parent cee84e08e0
commit c29159b4e4
2 changed files with 127 additions and 1 deletions
+126 -1
@@ -1 +1,126 @@
WIP
The library offers extensive logging, for which you can supply your own logging implementation. The logging can be configured via the client options (see XXX).
Logging is based on the `Microsoft.Extensions.Logging.ILogger` interface. This should provide ease of use when trying to connect the library logging to your existing log implementation.
### Serilog
To make the CryptoExchange.Net logging write to the Serilog logger you can use the following ways, depending on the type of project you're using. The following examples assume that the `Serilog.Sinks.Console` package is already installed.
#### ASP.NET Core/Blazor
With an ASP.Net Core or Blazor project, make sure to install the `Serilog.AspNetCore` package (https://github.com/serilog/serilog-aspnetcore). Adding `UseSerilog` will add the serilogger implementation as an ILogger which you can inject into implementations.
*Configuring Serilog as ILogger:*
````C#
public static void Main(string[] args)
{
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.WriteTo.Console()
.CreateLogger();
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.UseSerilog()
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
````
*Injecting ILogger:*
````C#
public class BinanceDataProvider
{
BinanceClient _client;
public BinanceDataProvider(ILogger<BinanceDataProvider> logger)
{
_client = new BinanceClient(new BinanceClientOptions
{
LogLevel = LogLevel.Trace,
LogWriters = new List<ILogger> { logger }
});
}
}
````
#### Console application
If you don't have a dependency injection service available because you are for example working on a simple console application you use a slightly different approach.
*Configuring Serilog as ILogger:*
````C#
var serilogLogger = new LoggerConfiguration()
.MinimumLevel.Debug()
.WriteTo.Console()
.CreateLogger();
var loggerFactory = (ILoggerFactory)new LoggerFactory();
loggerFactory.AddSerilog(serilogLogger);
````
*Injecting ILogger:*
````C#
var client = new BinanceClient(new Binance.Net.Objects.BinanceClientOptions
{
LogLevel = LogLevel.Trace,
LogWriters = new List<ILogger> { logger }
});
````
The `BinanceClient` will now use the Serilog logger.
### Log4Net
To make the CryptoExchange.Net logging write to the Serilog logger you can use the following ways, depending on the type of project you're using.
#### ASP.NET Core/Blazor
With an ASP.Net Core or Blazor project, make sure to install the `Microsoft.Extensions.Logging.Log4Net.AspNetCore` package (https://github.com/huorswords/Microsoft.Extensions.Logging.Log4Net.AspNetCore).
Adding `AddLog4Net` will add the Log4Net implementation as an ILogger which you can inject into implementations. Make sure you have a log4net.config configuration file in your project.
*Configuring Log4Net as ILogger:*
````C#
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.ConfigureLogging(logging =>
{
logging.AddLog4Net();
logging.SetMinimumLevel(LogLevel.Trace);
});
webBuilder.UseStartup<Startup>();
});
````
*Injecting ILogger:*
````C#
public class BinanceDataProvider
{
BinanceClient _client;
public BinanceDataProvider(ILogger<BinanceDataProvider> logger)
{
_client = new BinanceClient(new BinanceClientOptions
{
LogLevel = LogLevel.Trace,
LogWriters = new List<ILogger> { logger }
});
}
}
````
#### Console application
TODO
+1
@@ -0,0 +1 @@
WIP