Cod*_*Guy 3 .net c# logging asp.net-core ilogger
当给出 null 时,它给出 Value 不能为 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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
根据建议我编辑了我的问题
正如评论中所建议的:
ILoggerFactory并将MyController其存储在字段变量中(例如_loggerFactory)。MyModel在您的List方法中构造一个记录器:ILogger<MyModel> modelLogger = _loggerFactory.CreateLogger<MyModel>();MyModel构造函数中:MyModel model = new MyModel(modelLogger);例子:
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);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4536 次 |
| 最近记录: |