Serilog: Как мне еще улучшить выражение фильтра в appsettings.json?

Существует предложение ES7 для RegExp.escape в https://github.com/benjamingr/RexExp.escape/ , с полиполем, доступным в https://github.com /ljharb/regexp.escape.

2
задан Guybrush Threepwood 18 January 2019 в 12:10
поделиться

1 ответ

Я думаю, что ваши фильтры не совсем верны.

Выражение фильтра должно быть:

"expression": "SourceContext = 'Microsoft' or StartsWith(SourceContext, 'Microsoft.')"

(я думаю, вы могли бы просто сделать StartsWith(SourceContext, 'Microsoft') без последней точки, но тогда это может не работать должным образом для пространств имен, подобных MicrosoftOrIsItReally.MyNamespace)

(внутренне Matching.ForSource выполняет фильтрацию SourceContext.StartsWith(..), как показано в источнике )

Чтобы подтвердить это, вы можете отредактировать outputTemplate ] вашего приемника файлов, чтобы отобразить свойство SourceContext и увидеть происхождение событий журнала. (по умолчанию установлено значение "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] {Message:lj}{NewLine}{Exception}"). Вы можете изменить его на "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}]<{SourceContext}> {Message:lj}{NewLine}{Exception}", чтобы включить свойство SourceContext.


Кстати, у вас есть лишняя, ненужная директива "Using". "Serilog.Settings.Configuration" не является необходимым

0
ответ дан tsimbalar 18 January 2019 в 12:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: