Как ввести логгирование в ASP.NET Core?

ИС на 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!");
            });
        }
    }


Правильно ли я понял что в данном случае в лог записывается только один раз при старте приложения?
  • Вопрос задан
  • 501 просмотр
Решения вопроса 1
NikFaraday
@NikFaraday
Student full-stack Developer
Логирование используется для записи ошибок в како-то файл. Например, если вы, при чтении из БД получили Exception, тогда вы обращаетесь к логеру и вызываете метод .LogError куда передает ошибку в виде строки. Эта строка будет записана в файл, откуда вы потом сможете это прочитать.

Встроенный интерфейс ILogger<> подойдёт вам вполне. Для настройки места, куда будут сохраняться логи, читайте конфигурацию логера, как его правильно настроить

Да, логи пишутся вручную
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы