У меня такая конфигурация:
Код: Выделить всё
loggerConfiguration
.Enrich.FromLogContext()
.Enrich.WithEnvironmentName()
.Enrich.WithMachineName()
.Enrich.WithEnvironmentUserName()
.Enrich.WithSensitiveDataMasking(MaskingMode.Globally, maskingOperators)
.Destructure.With(new MaskingOperatorsDestructuringPolicy(maskingOperators));
Код: Выделить всё
var testException = new Exception($"{name}: {value}", new Exception($"Inner exception: {name}: {value}"))
{
Data = {{name, value}}
};
_logger.Information($"{name}: {value}");
_logger.Information(value);
_logger.Information($"{value}: {name}");
_logger.Information("{Name}: {Value}", name, value);
_logger.Information("{@ResultObject}", new { name, value });
_logger.Information("{@ResultDictionary}", new Dictionary() { { name, value } });
_logger.Information("{@ResultCollection}", new[] { name, value });
_logger.Information(testException, "Throws an exception with sensitive data");
значение — конфиденциальные данные, на которые распространяется либо конфиденциальная маскирование данных из Serilog.Enrichers.Sensitive или из моей собственной политики деструктуризации операторов маскировки.
Охватываются все ситуации, кроме случая, когда у нас есть исключение. Данные, передаваемые в этой штуке, тоже должны быть замаскированы, не так ли? Знаете ли вы, как это сделать? Я хотел бы, чтобы это работало для всех приемников.
Подробнее здесь: https://stackoverflow.com/questions/713 ... og-message