Например, в моем приложении я хочу иметь определенную группу журналирования для всего, что связано с сущностью «Пользователи». Однако это не привязано к конкретному пространству имен или классу, это может быть код в контроллерах, репозитории или любой пользовательской службе. При отладке чего-либо, связанного с пользователями, я хотел бы включить для этого подробное ведение журнала, но не увеличивать его для каких-либо других журналов, служб или контроллеров, даже если они разделяют пространство имен с пользователями.
Опять же, «Пользователи» - это просто пример - это может быть связано с определенным типом SQL-запросов, которые я делаю, всякий раз, когда используется какой-либо сервис, только когда запускается определенное условие глубоко внутри некоторого кода и т. д. - возможно, я хочу, чтобы все SQL-запросы регистрировались с ошибкой только за исключением некоторых, которые должны быть подробными.
Сначала я попробовал сделать это с помощью переключателей
Код: Выделить всё
Log.Logger = new LoggerConfiguration()
.ReadFrom.Configuration(builder.Configuration)
.MinimumLevel.Override("Case1", SerilogSwitches.Case1)
.MinimumLevel.Override("Case2", SerilogSwitches.Case2)
.CreateLogger();
Я также рассмотрел возможность создания конкретного контекста журнала для каждого из этих случаев, используя Log.ForContext
Код: Выделить всё
var logger1 = Log.ForContext("Context", "Case1");
var logger2 = Log.ForContext("Context", "Case2");
Любая помощь приветствуется
Подробнее здесь: https://stackoverflow.com/questions/785 ... fic-loggin