internal static string Body(ParsedLayout pl, LoggerEvent evt) { StringWriter sw = new StringWriter(); pl.WriteBody(sw, evt); return(sw.ToString()); }
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)); }
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); }
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); }
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); }
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); }
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); }