示例#1
0
        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());
        }
示例#2
0
        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());
        }
示例#3
0
        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());
        }
示例#4
0
        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());
        }
示例#5
0
        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());
        }
示例#6
0
        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());
        }
示例#7
0
        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());
        }