コード例 #1
0
ファイル: Some.cs プロジェクト: zhangbo27/serilog
        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));
        }
コード例 #2
0
ファイル: LoggerTests.cs プロジェクト: zouql/serilog
        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());
        }
コード例 #3
0
ファイル: LoggerTests.cs プロジェクト: serilog/serilog
        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());
        }
コード例 #4
0
ファイル: Some.cs プロジェクト: serilog/serilog-sinks-seq
        // 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));
        }
コード例 #5
0
        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));
        }
コード例 #6
0
ファイル: Some.cs プロジェクト: dfacto-lab/serilog-sinks-file
        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());
        }