It has been fixed for a while, but has not been released. A failure occurred while reading the properties of the event. This has been fixed in revision 26. Please try the new release 20140623 - https://sourceforge.net/projects/log4net-json/files/20140623/
Oh and add an element for the property - either "property" or "OurCompany.ApplicationName"
As an alternative for static content like this, you can try adding a template layout element (A):
public class Members : RepoTest { protected override string GetConfig() { return @"<log4net> <root> <level value='DEBUG'/> <appender-ref ref='TestAppender'/> </root> <appender name='TestAppender' type='log4net.Ext.Json.Tests.General.TestAppender, log4net.Ext.Json.Tests'> <layout type='log4net.Layout.SerializedLayout, log4net.Ext.Json'> <member value='OurCompany.ApplicationName' /> <member value='A|L-%p-%c' /> <member value='B%date:yyyy' /> <member value='Host=ProcessId\;HostName' /> <member value='App:appname' /> </layout> </appender> </log4net>"; } protected override void TestLog(log4net.ILog log) { log4net.GlobalContext.Properties["OurCompany.ApplicationName"] = "fubar"; log.Info(4); var events = GetEventStrings(log.Logger); Assert.AreEqual(1, events.Length, "events Count"); var le = events.Single(); Assert.IsNotNull(le, "loggingevent"); var procid = Process.GetCurrentProcess().Id; StringAssert.StartsWith(@"{""OurCompany.ApplicationName"":""fubar""", le, "log line"); StringAssert.Contains(@",""Host"":{", le, "log line"); StringAssert.Contains(@"""ProcessId"":" + procid, le, "log line"); StringAssert.Contains(@"""HostName"":""" + Environment.MachineName + @"""", le, "log line"); StringAssert.Contains(@"""A"":""L-INFO-log4net.Ext.Json.Tests.Layout.Arrangements.Members""", le, "log line"); StringAssert.Contains(@"""B"":""" + DateTime.Now.Year + @"""", le, "log line"); StringAssert.Contains(@"""App"":""", le, "log line"); } }
Finally, try the "appname" member.
Thanks Rob
source share