Уровень журнала изменений Serilog при исключении - PullRequest
0 голосов
/ 14 февраля 2019

Есть ли способ с конфигурацией Serilog / Seq изменить минимальный уровень ведения журнала, если журнал содержит исключение?Мой пример использования - форматировщик ввода Microsoft JSON, он регистрирует на уровне отладки, но если возникает проблема с форматом ввода, он генерирует исключение, которое перехватывается и регистрируется на уровне отладки.Я хочу регистрировать все, к чему присоединено исключение независимо от уровня.

РЕДАКТИРОВАТЬ: необходимо уточнить, при производстве мы регистрируем наши сообщения только на уровне информации или выше, или предупреждение, если оно исходит из кода платформы (системаи пространства имен Microsoft).Ищите способ, которым я могу войти, если есть исключение независимо от уровня сообщения.

1 Ответ

0 голосов
/ 16 февраля 2019

Это возможно в Serilog, но имеет ряд существенных недостатков, а именно: все события уровня отладки должны быть сначала созданы, прежде чем нежелательные будут отфильтрованы.Это, вероятно, слишком много в большинстве случаев, и вам лучше просто изменить уровень событий, в которых регистрируются исключения, на Information или выше.

Для этого, однако:

Log.Logger = new LoggerConfiguration()
    .MinimumLevel.Debug() // emit the events
    .Filter.ByIncludingOnly(le => (int)le.Level >= (int)LogEventLevel.Information ||
                                  le.Exception != null)
    .CreateLogger();
...