public void LogMaskedAttribute_Shows_Last_NChars_Then_Replaces_All_Other_Chars_With_Default_StarMask_And_PreservedLength_Even_For_An_Input_Shorter_Than_ShowLast() { // [LogMasked(ShowLast = 3,PreserveLength = true))] // -> "12" LogEvent evt = null; var log = new LoggerConfiguration() .Destructure.UsingAttributes() .WriteTo.Sink(new DelegatingSink(e => evt = e)) .CreateLogger(); var customized = new CustomizedMaskedLogs { ShowLastThreeThenDefaultMaskedPreservedLength = "12" }; log.Information("Here is {@Customized}", customized); var sv = (StructureValue)evt.Properties["Customized"]; var props = sv.Properties.ToDictionary(p => p.Name, p => p.Value); Assert.IsTrue(props.ContainsKey("ShowLastThreeThenDefaultMaskedPreservedLength")); Assert.AreEqual("12", props["ShowLastThreeThenDefaultMaskedPreservedLength"].LiteralValue()); }
public void LogMaskedAttribute_Shows_First_NChars_And_Last_NChars_Then_Replaces_All_Other_Chars_With_Custom_Mask_And_PreservedLength_That_Gives_Warning() { // [LogMasked(Text = "REMOVED", ShowFirst = 3, ShowLast = 3, PreserveLength = true)] // 12345678987654321 -> 123_REMOVED_321 LogEvent evt = null; var log = new LoggerConfiguration() .Destructure.UsingAttributes() .WriteTo.Sink(new DelegatingSink(e => evt = e)) .CreateLogger(); var customized = new CustomizedMaskedLogs { ShowFirstAndLastThreeAndCustomMaskInTheMiddlePreservedLengthIgnored = "12345678987654321" }; log.Information("Here is {@Customized}", customized); var sv = (StructureValue)evt.Properties["Customized"]; var props = sv.Properties.ToDictionary(p => p.Name, p => p.Value); Assert.IsTrue(props.ContainsKey("ShowFirstAndLastThreeAndCustomMaskInTheMiddlePreservedLengthIgnored")); Assert.AreEqual("123_REMOVED_321", props["ShowFirstAndLastThreeAndCustomMaskInTheMiddlePreservedLengthIgnored"].LiteralValue()); }
public void LogMaskedAttribute_Shows_Last_NChars_Then_Replaces_All_Other_Chars_With_Custom_Mask() { // [LogMasked(Text = "_REMOVED_", ShowLast = 3)] // 123456789 -> "_REMOVED_789" LogEvent evt = null; var log = new LoggerConfiguration() .Destructure.UsingAttributes() .WriteTo.Sink(new DelegatingSink(e => evt = e)) .CreateLogger(); var customized = new CustomizedMaskedLogs { ShowLastThreeThenCustomMask = "123456789" }; log.Information("Here is {@Customized}", customized); var sv = (StructureValue)evt.Properties["Customized"]; var props = sv.Properties.ToDictionary(p => p.Name, p => p.Value); Assert.IsTrue(props.ContainsKey("ShowLastThreeThenCustomMask")); Assert.AreEqual("_REMOVED_789", props["ShowLastThreeThenCustomMask"].LiteralValue()); }
public void LogMaskedAttribute_Shows_First_NChars_And_Last_NChars_Then_Replaces_All_Other_Chars_With_Custom_Mask_And_PreservedLength_Even_When_Input_Length_Is_Less_Than_ShowFirst_Plus_ShowLast() { // [LogMasked(Text = "#", ShowFirst = 3, ShowLast = 3)] // 1234 -> "1234" LogEvent evt = null; var log = new LoggerConfiguration() .Destructure.UsingAttributes() .WriteTo.Sink(new DelegatingSink(e => evt = e)) .CreateLogger(); var customized = new CustomizedMaskedLogs { ShowFirstAndLastThreeAndCustomMaskInTheMiddle = "1234" }; log.Information("Here is {@Customized}", customized); var sv = (StructureValue)evt.Properties["Customized"]; var props = sv.Properties.ToDictionary(p => p.Name, p => p.Value); Assert.IsTrue(props.ContainsKey("ShowFirstAndLastThreeAndCustomMaskInTheMiddle")); Assert.AreEqual("1234", props["ShowFirstAndLastThreeAndCustomMaskInTheMiddle"].LiteralValue()); }
public void LogMaskedAttribute_Shows_First_NChars_And_Last_NChars_Replaces_Value_With_Default_StarMask() { // [LogMasked(ShowFirst = 3, ShowLast = 3)] // -> "1234*********4321" LogEvent evt = null; var log = new LoggerConfiguration() .Destructure.UsingAttributes() .WriteTo.Sink(new DelegatingSink(e => evt = e)) .CreateLogger(); var customized = new CustomizedMaskedLogs { ShowFirstAndLastThreeAndDefaultMaskeInTheMiddle = "12345678987654321" }; log.Information("Here is {@Customized}", customized); var sv = (StructureValue)evt.Properties["Customized"]; var props = sv.Properties.ToDictionary(p => p.Name, p => p.Value); Assert.IsTrue(props.ContainsKey("ShowFirstAndLastThreeAndDefaultMaskeInTheMiddle")); Assert.AreEqual("123***321", props["ShowFirstAndLastThreeAndDefaultMaskeInTheMiddle"].LiteralValue()); }
public void LogMaskedAttribute_Replaces_Value_With_Provided_Mask_And_PreservedLength() { // [LogMasked(Text = "#")] // 123456789 -> "#########" LogEvent evt = null; var log = new LoggerConfiguration() .Destructure.UsingAttributes() .WriteTo.Sink(new DelegatingSink(e => evt = e)) .CreateLogger(); var customized = new CustomizedMaskedLogs { CustomMaskedPreservedLength = "123456789" }; log.Information("Here is {@Customized}", customized); var sv = (StructureValue)evt.Properties["Customized"]; var props = sv.Properties.ToDictionary(p => p.Name, p => p.Value); Assert.IsTrue(props.ContainsKey("CustomMaskedPreservedLength")); Assert.AreEqual("#########", props["CustomMaskedPreservedLength"].LiteralValue()); }
public void LogMaskedAttribute_Replaces_Value_With_DefaultStars_Mask() { // [LogMasked] // 123456789 -> "***" LogEvent evt = null; var log = new LoggerConfiguration() .Destructure.UsingAttributes() .WriteTo.Sink(new DelegatingSink(e => evt = e)) .CreateLogger(); var customized = new CustomizedMaskedLogs { DefaultMasked = "123456789" }; log.Information("Here is {@Customized}", customized); var sv = (StructureValue)evt.Properties["Customized"]; var props = sv.Properties.ToDictionary(p => p.Name, p => p.Value); Assert.IsTrue(props.ContainsKey("DefaultMasked")); Assert.AreEqual("***", props["DefaultMasked"].LiteralValue()); }