Можно ли настроить serilog на прием определенного ведения журнала, даже если уровень серьезности ниже минимального уровнC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Можно ли настроить serilog на прием определенного ведения журнала, даже если уровень серьезности ниже минимального уровн

Сообщение Anonymous »

Вот как настроен мой вход в Asp.Net:

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

    _ = pServiceCollection.AddSerilog((serviceProvider, loggerConfiguration)
=> loggerConfiguration.ReadFrom.Configuration(pConfiguration)
.ReadFrom.Services(serviceProvider)
.Enrich.FromLogContext()
.WriteTo.Console(outputTemplate: LogMessageTemplate,
formatProvider: CultureInfo.InvariantCulture)
.WriteTo.File(path: logFilePath,
outputTemplate: LogMessageTemplate,
rollingInterval: RollingInterval.Day,
retainedFileCountLimit: 30,
formatProvider: CultureInfo.InvariantCulture)
.WriteTo.EventLog(source: CommonConstants.ProductName,
manageEventSource: true,
restrictedToMinimumLevel: LogEventLevel.Warning,
formatProvider: CultureInfo.InvariantCulture));
В журнал событий будет записываться только предупреждение или выше (из-за ограничения ToMinimumLevel)
Но есть один тип информационного уровня запись, которую я хочу внести в журнал событий.
Я попробовал добавить это ограничение (

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

Filter.ByIncludingOnly
) и использовать «категорию», но, к сожалению, это будет применяться ко всем приемникам. Мне нужно это только для приемника журнала событий.

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

.WriteTo.File(path: logFilePath,
outputTemplate: LogMessageTemplate,
rollingInterval: RollingInterval.Day,
retainedFileCountLimit: 30,
formatProvider: CultureInfo.InvariantCulture)
.WriteTo.EventLog(source: CommonConstants.ProductName,
manageEventSource: true,
restrictedToMinimumLevel: LogEventLevel.Warning,
formatProvider: CultureInfo.InvariantCulture)
.Filter.ByIncludingOnly(e =>
(e.Level == LogEventLevel.Information &&
(e.Properties.ContainsKey("SourceContext") &&
e.Properties["SourceContext"].ToString().Contains(CommonConstants.ForceLoggingToEventLogCategory))) ||
e.Level >= LogEventLevel.Warning));
Это была другая сторона:

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

var forcelogger = app.Services.GetService()!.CreateLogger(CommonConstants.ForceLoggingToEventLogCategory);
forcelogger.LogInformation("force hallo Welt");

Вывод: мне нравится настройка ведения журнала с ведением журнала Asp.Net и Serilog, и мне нужны только предупреждения и выше в журнале событий, но их 2-3 исключения. Возможно ли этого добиться?


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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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