Пример #1
0
        internal static string Body(ParsedLayout pl, LoggerEvent evt)
        {
            StringWriter sw = new StringWriter();

            pl.WriteBody(sw, evt);
            return(sw.ToString());
        }
Пример #2
0
        public override Renderer Build(IServiceProvider serviceProvider = null)
        {
            var parsedLayout = ParsedLayout.Parse(this.Layout, this.LayoutMode);

            parsedLayout.Header     = this.Header;
            parsedLayout.Footer     = this.Footer;
            parsedLayout.LayoutMode = this.LayoutMode;
            return(new TextRenderer(parsedLayout, this.Encoding));
        }
Пример #3
0
        public void apply_simple_padding()
        {
            ParsedLayout pl   = ParsedLayout.Parse("{Level,-5} {Thread} {Message}{NL}", LayoutMode.Default);
            string       text = Body(pl, new LoggerEvent {
                Level = LoggerLevel.Warn, Message = "This is my message", ThreadName = "Main"
            });

            Assert.Equal("Warn  Main This is my message" + Environment.NewLine, text);
        }
Пример #4
0
        public void apply_formating()
        {
            ParsedLayout pl   = ParsedLayout.Parse("{Level:C} {TimeStamp:u} [{Thread,-10}] {Message}{NL}", LayoutMode.Default);
            string       text = Body(pl, new LoggerEvent {
                TimeStamp = new DateTime(2000, 1, 1), Level = LoggerLevel.Warn, Message = "This is my message", ThreadName = "Main"
            });

            Assert.Equal("W 2000-01-01 00:00:00Z [Main      ] This is my message" + Environment.NewLine, text);
        }
Пример #5
0
        public void time_variable_implies_time()
        {
            ParsedLayout pl   = ParsedLayout.Parse("{Time}", LayoutMode.Default);
            string       text = Body(pl, new LoggerEvent {
                TimeStamp = new DateTime(2000, 1, 1)
            });

            Assert.Equal("00:00:00", text);
        }
        public void escaped_layout_condense_whitespace()
        {
            ParsedLayout pl   = ParsedLayout.Parse("{Level:MMM} \r\n{Time} \t\t\r[{Thread}] {Message}", LayoutMode.Escaped);
            string       text = Body(pl, new LoggerEvent {
                TimeStamp = new DateTime(2000, 1, 1), Level = LoggerLevel.Warn, Message = "This is my message", ThreadName = "Main"
            });

            Assert.Equal(@"Warn 00:00:00 [Main] ""This is my message""", text);
        }
Пример #7
0
        public void use_bad_formats_ignored()
        {
            // TODO Should also apply to others
            // TODO SHould also parse bad string formats and just ignore them ( something {)
            ParsedLayout pl   = ParsedLayout.Parse("{Level:MMM} {TimeStamp:u} [{Thread,-10}] {Message}{NL}", LayoutMode.Default);
            string       text = Body(pl, new LoggerEvent {
                TimeStamp = new DateTime(2000, 1, 1), Level = LoggerLevel.Warn, Message = "This is my message", ThreadName = "Main"
            });

            Assert.Equal("Warn 2000-01-01 00:00:00Z [Main      ] This is my message" + Environment.NewLine, text);
        }
        public void vertical_format_express_all_nodes()
        {
            ParsedLayout pl  = ParsedLayout.Parse("{Data}", LayoutMode.Vertical);
            LoggerEvent  evt = new LoggerEvent();

            CreateData(evt.Data);

            string text = Body(pl, evt);

            // TODO Improve this assertion
            Assert.Contains("Data.environment.memory=", text);
        }
        public void should_escape_invalid_filename_chars_windows()
        {
            ParsedLayout pl = ParsedLayout.ParseFileName("C:\\temp\\logs\\{TimeStamp}{NL}.log");

            FileTarget file   = (new FileTargetBuilder()).Build() as FileTarget;
            Logger     logger = Logger.Create(file);

            string text = Body(pl, new LoggerEvent {
                SourceLogger = logger
            });

            Assert.Equal("C:\\temp\\logs\\0001-01-01_00_00_00Z_.log", text);
        }
        public void Body_should_format_event_names()
        {
            ParsedLayout pl   = ParsedLayout.Parse("{name}={Data.value}", LayoutMode.Default);
            string       text = Body(pl, new ProfilerEvent {
                TimeStamp  = new DateTime(2000, 1, 1),
                Level      = LoggerLevel.Warn,
                ThreadName = "Main",
                Name       = "cool",
                Value      = "beans=420;down=20"
            });

            Assert.Equal(@"cool=beans=420;down=20", text);
        }
Пример #11
0
        public void apply_data_property_filtering()
        {
            ParsedLayout pl  = ParsedLayout.Parse("{Data.environment.*}", LayoutMode.Vertical);
            LoggerEvent  evt = new LoggerEvent();

            CreateData(evt.Data);

            string text = Body(pl, evt);

            // TODO Improve this assertion
            Assert.Contains("Data.environment.memory=", text);
            Assert.DoesNotContain("Data.memory=", text);
        }
        public void Body_should_expand_environment_variables()
        {
            Environment.SetEnvironmentVariable("MYHOME", "Hello");
            ParsedLayout pl = ParsedLayout.ParseFileName("%MYHOME%/the.log");

            FileTarget file   = (new FileTargetBuilder()).Build() as FileTarget;
            Logger     logger = Logger.Create(file);

            string text = Body(pl, new LoggerEvent {
                SourceLogger = logger
            });

            Assert.Equal("Hello/the.log", text);
        }
        public void Body()
        {
            ParsedLayout pl   = ParsedLayout.Parse("{Level:MMM} {Time} [{Thread}] {Message}", LayoutMode.Vertical);
            string       text = Body(pl, new LoggerEvent {
                TimeStamp = new DateTime(2000, 1, 1), Level = LoggerLevel.Warn, Message = "This is my message", ThreadName = "Main"
            });

            Assert.Equal(
                @"Level=Warn
Time=00:00:00
Thread=Main
Message=This is my message
------------------------------------------------------------------------" + Environment.NewLine,
                text);
        }