NLog внедряет пользовательское свойство с помощью .NET6, например метод WithPropertyC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 NLog внедряет пользовательское свойство с помощью .NET6, например метод WithProperty

Сообщение Anonymous »


У меня был проект .NET 4.8, в котором я использовал NLog следующим образом:

публичный класс ReportsController: ApiController { частный статический регистратор NLog.Logger = NLog.LogManager.GetLogger("Приложение"); публичная недействительность SomeMethod() { строка userID = 'ABC123'; logger.WithProperty("UserId", userID).Info("UserId {0} создал новый отчет.", userID); } } С помощью приведенного выше кода мне удалось сохранить свойство UserId в специальном поле таблицы журналов базы данных, чтобы легко фильтровать журналы по идентификатору пользователя.

Теперь мы обновили приложение до .NET 6, используя внедрение зависимостей и т. д.

Поэтому текущий код выглядит следующим образом:

с использованием Microsoft.Extensions.Logging; общедоступный класс AuthorizationManagerService: IAuthorizationManagerService { частный ILogger только для чтения _logger; //интерфейс в Microsoft.Extensions.Logging public AuthorizationManagerService (регистратор ILogger) { _logger = регистратор; } публичная недействительность SomeMethod() { строка userID = 'ABC123'; _logger.LogInformation("UserId {0} создал новый отчет.", userID); } В файле appsettings.json я определил следующие правила для NLog:

"NLog": { «throwConfigExceptions»: правда, "internalLogLevel": "Ошибка", "internalLogFile": "${CurrentDir}/internal-nlog.txt", "расширения": [ { "сборка": "NLog.Extensions.Logging" }, { "сборка": "NLog.Web.AspNetCore" } ], "цели": { «асинхронный»: ложь, "журнальный файл": { "тип": "Файл", "fileName": "${CurrentDir}/Logs/nlog-${shortdate}.log" }, "logconsole": { "type": "Консоль" }, "трассировка журнала": { "тип": "След" }, "база данных журналов": { "тип": "База данных", "connectionString": "Источник данных=MyDatabaseInstance;Начальный каталог=MyDatabase;Встроенная безопасность=false;идентификатор пользователя=TheUser;пароль=НЕПРАВИЛЬНО;", "keepConnection": "истина", "commandText": "вставить в \"Журналы\"(\"LogDate\", \"LogMessage\", \"LogLevel\", \"LogIP\", \"LogUrl\", \"LogException\", \ Значения «LogUserId», «LogModule», «LogCallSite», «LogSessionId») (@LogDate, @LogMessage, @LogLevel, @LogIP, @LogURL, @LogException, @LogUserId, @LogModule, @ LogCallSite, @LogSessionId);", "параметры": [ { "name": "@LogDate", "layout": "${date}" }, { "name": "@LogMessage", "layout": "${message}" }, { "name": "@LogLevel", "layout": "${level:uppercase=true}" }, { "name": "@LogIP", "layout": "${aspnet-request-ip}" }, { "name": "@LogUrl", "layout": "${aspnet-request-url}" }, { "name": "@LogException", "layout": "${Exception:format=tostring}" }, { "name": "@LogUserID", "layout": "${event-properties:UserId}" }, { "name": "@LogModule", "layout": "${logger}" }, { "name": "@LogCallSite", "layout": "${callsite:filename=true}" }, { "name": "@LogSessionID", "layout": "${aspnet-sessionid}" } ] } }, "правила": [ { "логгер": "*", "minLevel": "Информация", "writeTo": "база данных журнала" }, { "логгер": "*", "minLevel": "Отладка", "writeTo": "logconsole" }, { "логгер": "*", "minLevel": "Информация", "writeTo": "файл журнала" }, { "логгер": "*", "minLevel": "Трассировка", "writeTo": "logtrace" } ] } Как передать информацию об идентификаторе пользователя, чтобы она была записана в поле базы данных LogUserId, как это делалось раньше?
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как я могу обрабатывать Elastic.CommonSchema.NLog с помощью Elastic.NLog.Targets
    Anonymous » » в форуме C#
    0 Ответы
    66 Просмотры
    Последнее сообщение Anonymous
  • Как я могу обрабатывать Elastic.CommonSchema.NLog с помощью Elastic.NLog.Targets
    Anonymous » » в форуме C#
    0 Ответы
    84 Просмотры
    Последнее сообщение Anonymous
  • Как я могу обрабатывать Elastic.CommonSchema.NLog с помощью Elastic.NLog.Targets
    Anonymous » » в форуме C#
    0 Ответы
    107 Просмотры
    Последнее сообщение Anonymous
  • Восхождение в SEQ от NLOG, делая переменную URL SEQ, настраиваемой в NLOG.CONFIG
    Anonymous » » в форуме C#
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • Восхождение в SEQ от NLOG, делая переменную URL SEQ, настраиваемой в NLOG.CONFIG
    Anonymous » » в форуме C#
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous

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