如果我正确理解你的要求,你可以实现这样的东西 -
加入Host.CreateDefaultBuilder(args)
_Program.cs
using Microsoft.Extensions.Logging;
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
如果你在 Model 类中实现,你可以调用这样的东西 -
private readonly ILogger<RegisterModel> _logger;
public class YourModel : PageModel
{
private readonly ILogger<YourModel> _logger;
public YourModel(ILogger<YourModel> logger)
{
_logger = logger;
}
}
您可以在您的操作/方法中像这样调用来记录信息。您也可以传递异常/事件对象。
_logger.LogInformation("Log your info here.");
如果你在 Controller 中实现,你可以使用类似的东西 -
public class YourController : Controller
{
private readonly ILogger<YourController> _logger;
public YourController(ILogger<YourController> logger)
{
_logger = logger;
}
}
类似的方式你可以在你的控制器动作中调用这样的方式来记录信息-
_logger.LogInformation("Log your info here");
要覆盖由 添加的默认日志记录提供程序集Host.CreateDefaultBuilder
,请调用ClearProviders
并添加所需的日志记录提供程序。例如,以下代码Program.cs
:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureLogging(logging =>
{
logging.ClearProviders();
logging.AddConsole(); //you can pass any third party logging provider here
})
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
有关详细信息,请参阅文档。