public static LogEvent InformationEvent(string messageTemplate = "Hello, world!", params object[] propertyValues) { var logger = new LoggerConfiguration().CreateLogger(); #pragma warning disable Serilog004 // Constant MessageTemplate verifier logger.BindMessageTemplate(messageTemplate, propertyValues, out var parsedTemplate, out var boundProperties); #pragma warning restore Serilog004 // Constant MessageTemplate verifier return(new LogEvent(DateTime.Now, LogEventLevel.Information, null, parsedTemplate, boundProperties)); }
public void MessageTemplatesCanBeBound() { var log = new LoggerConfiguration() .CreateLogger(); Assert.True(log.BindMessageTemplate("Hello, {Name}!", new object[] { "World" }, out var template, out var properties)); Assert.Equal("Hello, {Name}!", template.Text); Assert.Equal("World", properties.Single().Value.LiteralValue()); }
public void MessageTemplatesCanBeBound() { var log = new LoggerConfiguration() .CreateLogger(); MessageTemplate template; IEnumerable<LogEventProperty> properties; Assert.True(log.BindMessageTemplate("Hello, {Name}!", new object[] { "World" }, out template, out properties)); Assert.Equal("Hello, {Name}!", template.Text); Assert.Equal("World", properties.Single().Value.LiteralValue()); }
// ReSharper disable once MemberCanBePrivate.Global public static LogEvent LogEvent(LogEventLevel level, Exception?exception, string messageTemplate, params object[] propertyValues) { var log = new LoggerConfiguration().CreateLogger(); #pragma warning disable Serilog004 // Constant MessageTemplate verifier if (!log.BindMessageTemplate(messageTemplate, propertyValues, out var template, out var properties)) #pragma warning restore Serilog004 // Constant MessageTemplate verifier { throw new XunitException("Template could not be bound."); } return(new LogEvent(DateTimeOffset.Now, level, exception, template, properties)); }
public static LogEvent LogEvent(LogEventLevel level, Exception exception, string messageTemplate, params object[] propertyValues) { var log = new LoggerConfiguration().CreateLogger(); if (!log.BindMessageTemplate(messageTemplate, propertyValues, out var template, out var properties)) { throw new XunitException("Template could not be bound."); } return(new LogEvent(DateTimeOffset.Now, level, exception, template, properties)); }
public static LogEvent LogEvent(string messageTemplate, params object[] propertyValues) { var log = new LoggerConfiguration().CreateLogger(); MessageTemplate template; IEnumerable <LogEventProperty> properties; #pragma warning disable Serilog004 // Constant MessageTemplate verifier if (!log.BindMessageTemplate(messageTemplate, propertyValues, out template, out properties)) #pragma warning restore Serilog004 // Constant MessageTemplate verifier { throw new XunitException("Template could not be bound."); } return(new LogEvent(DateTimeOffset.Now, LogEventLevel.Information, null, template, properties)); }
static string Render(IFormatProvider formatProvider, string messageTemplate, params object[] properties) { var binder = new LoggerConfiguration().CreateLogger(); binder.BindMessageTemplate(messageTemplate, properties, out var mt, out var props); var output = new StringBuilder(); var writer = new StringWriter(output); var renderer = new ThemedMessageTemplateRenderer(DefaultThemes.None, new ThemedDisplayValueFormatter(DefaultThemes.None, formatProvider), false); renderer.Render(mt, props.ToDictionary(p => p.Name, p => p.Value), writer); writer.Flush(); return(output.ToString()); }