Наследование: log4net.Layout.LayoutSkeleton
Пример #1
0
        public void CustomObjectWithMessageProperty()
        {
            var layout = new GelfLayout();
            var message = new { Message = "Success", Test = 1 };

            var loggingEvent = GetLogginEvent(message);
            var result = GetMessage(layout, loggingEvent);

            Assert.AreEqual(result.FullMessage, message.Message);
            Assert.AreEqual(result["_Test"], message.Test.ToString());

            var message2 = new { FullMessage = "Success", Test = 1 };
            loggingEvent = GetLogginEvent(message2);
            result = GetMessage(layout, loggingEvent);

            Assert.AreEqual(result.FullMessage, message2.FullMessage);
            Assert.AreEqual(result["_Test"], message2.Test.ToString());

            var message3 = new { message = "Success", Test = 1 };
            loggingEvent = GetLogginEvent(message3);
            result = GetMessage(layout, loggingEvent);

            Assert.AreEqual(result.FullMessage, message3.message);
            Assert.AreEqual(result["_Test"], message3.Test.ToString());

            var message4 = new { full_Message = "Success", Test = 1 };
            loggingEvent = GetLogginEvent(message4);
            result = GetMessage(layout, loggingEvent);

            Assert.AreEqual(result.FullMessage, message4.full_Message);
            Assert.AreEqual(result["_Test"], message4.Test.ToString());
        }
Пример #2
0
        public void Strings()
        {
            var layout = new GelfLayout();

            var message = "test";
            var loggingEvent = GetLogginEvent(message);

            var result = GetMessage(layout, loggingEvent);

            Assert.AreEqual(message, result.FullMessage);
            Assert.AreEqual(message, result.ShortMessage);
        }
Пример #3
0
        public void StringFormat()
        {
            var layout = new GelfLayout();

            var message = new SystemStringFormat(CultureInfo.CurrentCulture, "This is a {0}", "test");
            var loggingEvent = GetLogginEvent(message);

            var result = GetMessage(layout, loggingEvent);

            Assert.AreEqual(message.ToString(), result.FullMessage);
            Assert.AreEqual(message.ToString(), result.ShortMessage);
        }
Пример #4
0
        public void CustomObjectAddedAsAdditionalProperties()
        {
            var layout = new GelfLayout();

            var message = new { Test = 1, Test2 = "YES!!!" };
            var loggingEvent = GetLogginEvent(message);

            var result = GetMessage(layout, loggingEvent);

            Assert.AreEqual(result["_Test"], message.Test.ToString());
            Assert.AreEqual(result["_Test2"], message.Test2);
        }
Пример #5
0
        public void BaseGelfDataIncluded()
        {
            var layout = new GelfLayout();
            var message = "test";
            var loggingEvent = GetLogginEvent(message);

            var result = GetMessage(layout, loggingEvent);

            Assert.AreEqual(result.FullMessage, message);
            Assert.AreEqual(result.Facility, "Gelf");
            Assert.AreEqual(result.Host, Environment.MachineName);
            Assert.AreEqual(result.Level, (int)LocalSyslogAppender.SyslogSeverity.Debug);
            Assert.IsTrue(result.TimeStamp >= DateTime.Now.AddMinutes(-1));
            Assert.AreEqual(result.Version, "1.0");
        }
Пример #6
0
        public void ThreadContextPropertiesAddedAsAdditionalProperties()
        {
            var layout = new GelfLayout();

            var message = "test";

            ThreadContext.Properties["TraceID"] = 1;

            var loggingEvent = GetLogginEvent(message);

            var result = GetMessage(layout, loggingEvent);

            Assert.AreEqual(result.FullMessage, message);
            Assert.AreEqual(result["_TraceID"], "1");
        }
Пример #7
0
        private GelfMessage GetMessage(GelfLayout layout, LoggingEvent message)
        {
            var sb = new StringBuilder();
            using (var sw = new StringWriter(sb))
                layout.Format(sw, message);

            return JsonConvert.DeserializeObject<GelfMessage>(sb.ToString());
        }
Пример #8
0
        public void ToStringOnObjectIfNoMessageIsProvided()
        {
            var layout = new GelfLayout();

            var message = new { Test = 1, Test2 = 2 };

            var loggingEvent = GetLogginEvent(message);

            var result = GetMessage(layout, loggingEvent);

            Assert.AreEqual(result["_Test"], message.Test.ToString());
            Assert.AreEqual(result["_Test2"], message.Test2.ToString());
            Assert.AreEqual(result.FullMessage, message.ToString());
            Assert.AreEqual(result.ShortMessage, message.ToString().TruncateMessage(250));
        }
Пример #9
0
        public void IncludeLocationInformation()
        {
            var layout = new GelfLayout();
            layout.IncludeLocationInformation = true;

            var message = "test";
            var loggingEvent = GetLogginEvent(message);

            var result = GetMessage(layout, loggingEvent);

            Assert.AreEqual(message, result.FullMessage);
            Assert.AreEqual(message, result.ShortMessage);
            Assert.IsNotNullOrEmpty(result.Line);
            Assert.IsNotNullOrEmpty(result.File);
        }
Пример #10
0
        public void DictionaryMessage()
        {
            var layout = new GelfLayout();

            var message = new Dictionary<string, string> { { "Test", "1" }, { "_Test2", "2" } };

            var loggingEvent = GetLogginEvent(message);

            var result = GetMessage(layout, loggingEvent);

            Assert.AreEqual(result["_Test"], message["Test"]);
            Assert.AreEqual(result["_Test2"], message["_Test2"]);
        }
Пример #11
0
        public void CustomPropertyWithUnderscoreIsAddedCorrectly()
        {
            var layout = new GelfLayout();

            var message = "test";

            ThreadContext.Properties["_TraceID"] = 1;

            var loggingEvent = GetLogginEvent(message);

            var result = GetMessage(layout, loggingEvent);

            Assert.AreEqual(result.FullMessage, message);
            Assert.AreEqual(result["_TraceID"], "1");
        }
Пример #12
0
        public void ObjectPropertiesConvertedToStrings()
        {
            var layout = new GelfLayout();

            var message = "test";

            var someObject = new object();
            ThreadContext.Properties["obj"] = someObject;

            var loggingEvent = GetLogginEvent(message);

            var result = GetMessage(layout, loggingEvent);

            Assert.AreEqual(result["_obj"], someObject.ToString());
        }
Пример #13
0
        public void PatternConversionInAdditionalProperties()
        {
            var layout = new GelfLayout();
            layout.AdditionalFields = "Level:%level,AppDomain:%a,LoggerName:%c{1},ThreadName:%t";
            var message = new { Message = "Test" };

            var loggingEvent = GetLogginEvent(message);

            var result = GetMessage(layout, loggingEvent);

            Assert.AreEqual(result["_Level"], "DEBUG");
            Assert.IsTrue(!string.IsNullOrWhiteSpace(result["_AppDomain"].ToString()));
            Assert.IsTrue(!string.IsNullOrWhiteSpace(result["_ThreadName"].ToString()));
            Assert.AreEqual("Class", result["_LoggerName"]);
        }
Пример #14
0
        public void NullPropertyValueDoesNotCauseException()
        {
            var layout = new GelfLayout();
            layout.IncludeLocationInformation = true;

            var message = "test";
            var loggingEvent = GetLogginEvent(message);
            loggingEvent.Properties["nullProperty"] = null;

            Assert.DoesNotThrow(() => GetMessage(layout, loggingEvent));
        }
Пример #15
0
        public void PatternConversionInAdditionalPropertiesWithCustomSeparators()
        {
            var layout = new GelfLayout();
            layout.FieldSeparator = "||";
            layout.KeyValueSeparator = "=>";
            layout.AdditionalFields = "Level=>%level||AppDomain=>%a||LoggerName=>%c{1}||ThreadName=>%t";            
            var message = new { Message = "Test" };

            var loggingEvent = GetLogginEvent(message);

            var result = GetMessage(layout, loggingEvent);

            Assert.AreEqual(result["_Level"], "DEBUG");
            Assert.IsTrue(!string.IsNullOrWhiteSpace(result["_AppDomain"].ToString()));
            Assert.IsTrue(!string.IsNullOrWhiteSpace(result["_ThreadName"].ToString()));
            Assert.AreEqual("Class", result["_LoggerName"]);
        }
Пример #16
0
        public void CustomObjectWithShortMessageProperty()
        {
            var layout = new GelfLayout();
            var message = new { ShortMessage = "Success", Test = 1 };

            var loggingEvent = GetLogginEvent(message);
            var result = GetMessage(layout, loggingEvent);

            Assert.AreEqual(result.ShortMessage, message.ShortMessage);
            Assert.AreEqual(result["_Test"], message.Test);

            var message2 = new { short_message = "Success", Test = 1 };
            loggingEvent = GetLogginEvent(message2);
            result = GetMessage(layout, loggingEvent);

            Assert.AreEqual(result.ShortMessage, message2.short_message);
            Assert.AreEqual(result["_Test"], message2.Test);

            var message3 = new { message = "Success", Test = 1 };
            loggingEvent = GetLogginEvent(message3);
            result = GetMessage(layout, loggingEvent);

            Assert.AreEqual(result.FullMessage, message3.message);
            Assert.AreEqual(result.ShortMessage, message3.message);
            Assert.AreEqual(result["_Test"], message3.Test);

            var message4 = new { message = "Success", short_message = "test", Test = 1 };
            loggingEvent = GetLogginEvent(message4);
            result = GetMessage(layout, loggingEvent);

            Assert.AreEqual(result.FullMessage, message4.message);
            Assert.AreEqual(result.ShortMessage, message4.short_message);
            Assert.AreEqual(result["_Test"], message4.Test);
        }
Пример #17
0
        public void PatternConversionLayoutSpecified()
        {
            var layout = new GelfLayout();
            layout.ConversionPattern = "[%level] - [%c{1}]";
            var message = new { Message = "Test" };

            var loggingEvent = GetLogginEvent(message);

            var result = GetMessage(layout, loggingEvent);

            Assert.AreEqual("[DEBUG] - [Class]", result["full_message"]);
            Assert.AreEqual("[DEBUG] - [Class]", result["short_message"]);
        }
Пример #18
0
        public void NumericPropertiesAreNotConvertedToStrings()
        {
            var layout = new GelfLayout();

            var message = "test";

            ThreadContext.Properties["decimal"] = 1m;
            ThreadContext.Properties["double"] = 1d;
            ThreadContext.Properties["float"] = 1f;
            ThreadContext.Properties["int"] = 1;
            ThreadContext.Properties["uint"] = (uint)1;
            ThreadContext.Properties["long"] = 1L;
            ThreadContext.Properties["ulong"] = 1ul;
            ThreadContext.Properties["short"] = (short)1;
            ThreadContext.Properties["ushort"] = (ushort)1;
            ThreadContext.Properties["nullable"] = (int?)1;

            var loggingEvent = GetLogginEvent(message);

            var result = GetMessage(layout, loggingEvent);

            Assert.AreEqual(result["_decimal"], 1);
            Assert.AreEqual(result["_double"], 1);
            Assert.AreEqual(result["_float"], 1);
            Assert.AreEqual(result["_int"], 1);
            Assert.AreEqual(result["_uint"], 1);
            Assert.AreEqual(result["_long"], 1);
            Assert.AreEqual(result["_ulong"], 1);
            Assert.AreEqual(result["_short"], 1);
            Assert.AreEqual(result["_ushort"], 1);
            Assert.AreEqual(result["_nullable"], 1);
        }