Если я правильно понял ваше требование, вы можете реализовать что-то вроде этого:
Добавить Host.CreateDefaultBuilder(args)
в Program.cs
using Microsoft.Extensions.Logging;
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
Если вы реализуете в классе модели, вы можете вызовите что-то вроде этого -
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.");
Если вы реализуете в Контроллере, вы можете использовать что-то вроде -
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>();
});
Для получения дополнительной информации см. docs .