Как классифицировать журналы Serilog по пользовательским идентификаторам и настроить для них определенные уровни веденияC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как классифицировать журналы Serilog по пользовательским идентификаторам и настроить для них определенные уровни ведения

Сообщение Anonymous »

Я знаю, что можно использовать MinimalLevel.Override, который затем определяет конкретный уровень ведения журнала для каждого пространства имен или типа, но что, если я хочу зарегистрировать его по что-то более конкретное для моего контекста или требований?
Например, в моем приложении я хочу иметь определенную группу журналирования для всего, что связано с сущностью «Пользователи». Однако это не привязано к конкретному пространству имен или классу, это может быть код в контроллерах, репозитории или любой пользовательской службе. При отладке чего-либо, связанного с пользователями, я хотел бы включить для этого подробное ведение журнала, но не увеличивать его для каких-либо других журналов, служб или контроллеров, даже если они разделяют пространство имен с пользователями.
Опять же, «Пользователи» - это просто пример - это может быть связано с определенным типом SQL-запросов, которые я делаю, всякий раз, когда используется какой-либо сервис, только когда запускается определенное условие глубоко внутри некоторого кода и т. д. - возможно, я хочу, чтобы все SQL-запросы регистрировались с ошибкой только за исключением некоторых, которые должны быть подробными.
Сначала я попробовал сделать это с помощью переключателей

Код: Выделить всё

Log.Logger = new LoggerConfiguration()
.ReadFrom.Configuration(builder.Configuration)
.MinimumLevel.Override("Case1", SerilogSwitches.Case1)
.MinimumLevel.Override("Case2", SerilogSwitches.Case2)
.CreateLogger();
Проблема в том, что «Case1» и «Case2» должны соответствовать определенному пространству имен или типу, который мне не подходит.
Я также рассмотрел возможность создания конкретного контекста журнала для каждого из этих случаев, используя Log.ForContext

Код: Выделить всё

var logger1 = Log.ForContext("Context", "Case1");
var logger2 = Log.ForContext("Context", "Case2");
Хотя это позволило бы мне выбрать, какой регистратор использовать в любой момент, а затем позже было бы легче находить и фильтровать журналы для этого конкретного контекста, все они по-прежнему регистрируются на одном уровне - я не знаю. Не думаю, что смогу изменить уровень ведения журнала для определенного контекста, например, иметь Case1 для информации, а Case2 для ошибки.
Любая помощь приветствуется

Подробнее здесь: https://stackoverflow.com/questions/785 ... fic-loggin
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Отфильтруйте определенные журналы с помощью Serilog.Expressions
    Anonymous » » в форуме C#
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Отфильтруйте определенные журналы с помощью Serilog.Expressions
    Anonymous » » в форуме C#
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Отфильтруйте определенные журналы с помощью Serilog.Expressions
    Anonymous » » в форуме C#
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Отфильтруйте определенные журналы с помощью Serilog.Expressions
    Anonymous » » в форуме C#
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Можно ли настроить serilog на прием определенного ведения журнала, даже если уровень серьезности ниже минимального уровн
    Anonymous » » в форуме C#
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»