As giving null it gives Value cannot be null. (Parameter 'logger') error. Even if instance of model is given it still stays null
public class MyController : Controller
{
public MyController(ILogger<MyController> logger)
{
logger.LogInformation("Log Testing");
}
public ActionResult List()
{
int Id = 5;
MyModel model = new MyModel(null);
model.GetItem(Id);
return View("List", model);
}
}
public class MyModal:BaseModel
{
private readonly ILogger<MyModal> _logger;
public MyModel(ILogger<MyModel> logger)
{
this._logger = logger;
}
public MyModel GetItem (Int Id)
{
try
{
//My Code
}
catch(Exception e){
_logger.LogError(e.Message);
}
}
}
As per the suggestion i edited my question
As suggested in the comments:
ILoggerFactory
into MyController
and store it in a field variable (e.g. _loggerFactory
).MyModel
in your List
method: ILogger<MyModel> modelLogger = _loggerFactory.CreateLogger<MyModel>();
MyModel
constructor: MyModel model = new MyModel(modelLogger);
Example:
public class MyController
{
private readonly ILogger _logger;
private readonly ILoggerFactory _loggerFactory;
public MyController(ILogger<MyController> logger, ILoggerFactory loggerFactory)
{
_logger = logger;
_loggerFactory = loggerFactory;
}
public ActionResult List()
{
int Id = 5;
ILogger<MyModel> modelLogger = _loggerFactory.CreateLogger<MyModel>();
MyModel model = new MyModel(modelLogger);
model.GetItem(Id);
return View("List", model);
}
}