can log4net produce one comma separated valid Json file

Viewed 218

I am using log4net.Ext.Json (V-2.0.8.3) to produce Json file using log4Net.

Here is the code I'm trying,

class Program
{
    private static ILog logger = LogManager.GetLogger(typeof(Program));

    static void Main(string[] args)
    {
        var messages = new List<Message>
        {
            new Message{ Name = "Name1" }, new Message{ Name = "Name2" }
        };

        XmlConfigurator.Configure();

        foreach (var message in messages)
        {
            logger.Debug(message);
        }

        Console.ReadKey();
    }
}

and here is the configuration,

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
 </configSections>

<log4net>
 <root>
  <level value="DEBUG" />
  <appender-ref ref="JsonFileAppender" />
</root>
<appender name="JsonFileAppender" type="log4net.Appender.FileAppender">
  <threshold value="DEBUG"/>
  <file value="application-logs.json" />
  <appendToFile value="true" />
  <layout type="log4net.Layout.SerializedLayout, log4net.Ext.Json">
    <decorator type="log4net.Layout.Decorators.StandardTypesDecorator, log4net.Ext.Json" />
    <!--explicit default members-->
    <remove value="ndc" />
    <remove value="message" />
    <!--remove the default preformatted message member-->
    <member value="message:messageobject" />
    <!--add raw message-->
  </layout>
 </appender>
 </log4net>
</configuration> 

I'm getting below JSON output,

{"message":{"Id":"f0267c1d-4069-4ebe-896a-c8ae1669ba91","Name":"Name1"}} {"message":{"Id":"e4c6a3ca-7aee-47a0-8290-fa58d08dfcb1","Name":"Name2"}}

Can I get JSON output like below, Please suggest!

{
  "AllData": [
    {"Id":"f0267c1d-4069-4ebe-896a-c8ae1669ba91","Name":"Name1"},
    {"Id":"e4c6a3ca-7aee-47a0-8290-fa58d08dfcb1","Name":"Name2"},
  ]
}
0 Answers
Related