ИС на C#, ASP.NET Core MVC
По требованиям информ.безопасности ИС должен вести журнал логов по 5 уровням. Перечитал статьи про ILogger. Но до сих пор не понимаю как он работает? Например, я в каждом методе должен вручную ввести логгирование, то есть добавлять логгирование в каждом методе?
Например, в контроллере Home:
public class HomeController : Controller
{
private readonly ILogger<HomeController> _logger;
private readonly IMyService myService;
public HomeController(ILogger<HomeController> logger,IMyService myService)
{
_logger = logger;
this.myService=myService;
}
public IActionResult Index()
{
_logger.LogInformation("Переход на главную");
var model = myService.Hello();
_logger.LogDebug(model);
return View(model);
}
public IActionResult Privacy()
{
_logger.LogInformation("Переход на Privacy");
return View();
}
}
или же логгирование ведется автоматический? например, Elmah просто добавляю и в Startup.cs подключу и забыл. Если где то случиться ошибка и т.д. он сам ведет логгирование.
Второй вопрос где можно прочитать пример про логгирование в базу данных? пробовал Nlog, он тоже сам не ловить ошибки, а приходится в каждом методе добавлять вручную
или я совсем не правильно понимаю работу логгировнание в .NET Core
Metanit приводит такой пример:
public class Startup
{
public void Configure(IApplicationBuilder app, ILogger<Startup> logger)
{
app.Run(async (context) =>
{
// пишем на консоль информацию
logger.LogInformation("Processing request {0}", context.Request.Path);
//или так
//logger.LogInformation($"Processing request {context.Request.Path}");
await context.Response.WriteAsync("Hello World!");
});
}
}
Правильно ли я понял что в данном случае в лог записывается только один раз при старте приложения?