In Multisite generate site specific log file

Abhishek Malaviya
1 min readDec 27, 2019

--

Create patch file, add multiple appender site wise:

<appender name="site1" type="log4net.Appender.RollingFileAppender">
<file value="$(dataFolder)/logs/Site1.log.{date}.{time}.txt" />
<appendToFile value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %message%newline" />
</layout>
</appender>
<appender name="site2" type="log4net.Appender.FileAppender">
<file value="$(dataFolder)/logs/Site2.log.{date}.{time}.txt" />
<appendToFile value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %message%newline" />
</layout>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="site1" />
</root>
<logger additivity="false" name="site2">
<level value="DEBUG"/>
<appender-ref ref="site2" />
</logger>

In our example there are two site, site1 and site2, real scenario it may be n number of site. Here above config we added appender setting for both site .

Now we need to write custom logging class. Pass site name which you can get from context.site. Here below code just for demonstration we are passing hard coded site name.

ILog site1 = LogManager.GetLogger("site1"); 
ILog site2 = LogManager.GetLogger("site2");

This is raw code but i am trying to give basic idea.

Hope this may help you. Happy learning :).

--

--

No responses yet