예제 #1
0
        public void StringLogSerializer_OutputTemplateDemandChanges()
        {
            var serializerBuilder = new StringLogSerializerBuilder();

            var msg = new LogRecord
            {
                Message = "str",
                Level   = LogLevel.Debug
            };

            serializerBuilder.OutputTemplate = StringLogSerializerBuilder.DefaultOutputTemplate;
            var serializer = serializerBuilder.BuildSerializer();
            var result1    = serializer.Serialize(msg);

            serializerBuilder.OutputTemplate = "{Message}";
            serializer = serializerBuilder.BuildSerializer();
            var result2 = serializer.Serialize(msg);

            Assert.AreEqual(
                SerializeToDefaultOutputTemplate(msg),
                result1
                );
            Assert.AreEqual(
                $"{msg.Message}",
                result2
                );
        }
예제 #2
0
        public void StringLogSerializer_OutputTemplateWithUnknownToken()
        {
            var serializer = new StringLogSerializerBuilder {
                OutputTemplate = "{Message}{Unknown}{Level}"
            }.BuildSerializer();
            var msg = new LogRecord
            {
                Message = "str",
                Level   = LogLevel.Debug
            };

            var result = serializer.Serialize(msg);

            Assert.AreEqual(
                $"{msg.Message}{{Unknown}}{msg.Level}",
                result
                );
        }
예제 #3
0
        public void StringLogSerializer_DefaultOutputTemplate()
        {
            var serializer = new StringLogSerializerBuilder {
                OutputTemplate = StringLogSerializerBuilder.DefaultOutputTemplate
            }.BuildSerializer();
            var msg = new LogRecord
            {
                Timestamp = DateTime.Now,
                Message   = "str",
                Level     = LogLevel.Debug,
                Exception = new Exception("err")
            };

            var result = serializer.Serialize(msg);

            Assert.AreEqual(
                SerializeToDefaultOutputTemplate(msg),
                result
                );
        }
예제 #4
0
        public void StringLogSerializer_CustomOutputTemplate()
        {
            var serializerBuilder = new StringLogSerializerBuilder {
                OutputTemplate = "{Num})\t{Message}\t{Level}"
            };

            serializerBuilder.Formats["Num"]  = m => "1";
            serializerBuilder.Formats.Message = m => $"Message: {m.Message}";
            serializerBuilder.Formats.Level   = m => ((int)m.Level).ToString();

            var serializer = serializerBuilder.BuildSerializer();
            var msg        = new LogRecord
            {
                Message = "str",
                Level   = LogLevel.Debug
            };

            var result = serializer.Serialize(msg);

            Assert.AreEqual(
                $"1)\tMessage: {msg.Message}\t{(int)msg.Level}",
                result
                );
        }