I am working on an ASP.NET MVC application.
I have initialized my LoggerFactory in a static class which is called from Global.asax
using Microsoft.Extensions.Logging;
using Serilog;
using System.IO;
namespace web
{
public static class LogConfig
{
public static LoggerFactory LoggerFactory = new LoggerFactory();
public static void RegisterLogger()
{
LoggerFactory = new LoggerFactory();
Log.Logger = new LoggerConfiguration().MinimumLevel.Debug().WriteTo.RollingFile(Path.Combine("", "log-{Date}.txt")).CreateLogger();
LoggerFactory.AddSerilog();
}
}
}
now I want to use ninject, to inject an instance of ILogger into my constructor...
In my constructor I have:
private ILogger<MyTypeController> _logger;
public MyTypeController(ILogger<MyTypeController>)
{
// This works fine but I want to inject it
_logger = LogConfig.LoggerFactory.CreateLogger<MyTypeController>();
}
The above code works, but I want to inject it using ninject... this is what I have tried but does not even compile:
kernel.Bind(typeof(ILogger<>)).ToProvider(LogConfig.LoggerFactory.CreateLogger<>());