Существует предложение ES7 для RegExp.escape в https://github.com/benjamingr/RexExp.escape/ , с полиполем, доступным в https://github.com /ljharb/regexp.escape.
Я думаю, что ваши фильтры не совсем верны.
Выражение фильтра должно быть:
"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"
не является необходимым