For a few times I needed to add log4Net to projects I have been working on and occasionally I forget how to configure log4net in my project or website.
So, I’m writing it down and hope it can help others as well :)
1- Add reference to log4net
2- Create log4net.config.xml file under App_Data/Configuration/log4net directory. (or any directory you would like)
3- log4net.config.xml file should look like this – make sure to update the logging level
<?xml version="1.0" encoding="utf-8" ?>
<log4net>
<appender name="XMLFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="e:\\temp\\log4net\\BLOND_MOBILE\\root.xml"/>
<appendToFile value="true"/>
<rollingStyle value="Size"/>
<maxSizeRollBackups value="-1"/>
<maximumFileSize value="5MB"/>
<countDirection value="1"/>
<locationinfo value="false"/>
<layout type="log4net.Layout.XmlLayout"><param name="Prefix" value=""/>
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n"/>
</layout>
</appender>
<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender,log4net">
<file value="e:\\temp\\log4net\\BLOND_MOBILE\\root.txt"/>
<appendToFile value="true"/>
<rollingStyle value="Size"/>
<maxSizeRollBackups value="-1"/>
<maximumFileSize value="5MB"/>
<countDirection value="1"/>
<layout type="log4net.Layout.PatternLayout,log4net"><param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n"/>
</layout>
</appender>
<appender name="BLOND_MOBILEFileAppender" type="log4net.Appender.RollingFileAppender,log4net">
<file value="e:\\temp\\log4net\\BLOND_MOBILE\\BLOND_MOBILE.txt"/>
<appendToFile value="true"/>
<rollingStyle value="Size"/>
<maxSizeRollBackups value="-1"/>
<maximumFileSize value="5MB"/>
<countDirection value="1"/>
<layout type="log4net.Layout.PatternLayout,log4net"><param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n"/>
</layout>
</appender>
<appender name="APIAppender" type="log4net.Appender.RollingFileAppender,log4net">
<file value="e:\\temp\\log4net\\BLOND_MOBILE\\API.txt"/>
<appendToFile value="true"/>
<rollingStyle value="Size"/>
<maxSizeRollBackups value="-1"/>
<maximumFileSize value="5MB"/>
<countDirection value="1"/>
<layout type="log4net.Layout.PatternLayout, log4net"><param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n"/>
</layout>
</appender>
<logger name="BLOND_MOBILE"><level value="DEBUG"/>
<appender-ref ref="BLOND_MOBILEFileAppender"/>
</logger>
<logger name="API"><level value="ERROR"/>
<appender-ref ref="APIAppender"/>
</logger>
<root>
<level value="DEBUG"/>
<appender-ref ref="LogFileAppender"/>
<appender-ref ref="RemoteSyslogAppender"/>
</root>
</log4net>
4- Define log4net config location in the web.config (or any other place if its not a web app). Do this by adding this line to the web config
<add key="log4netConfigFilePath" value="~/App_Data/Configuration/log4net/log4net.config.xml"/>
5- Create a new file in your project of type global.asax. inside the Application_Start method add the below lines:
//log4net configSystem.IO.FileInfo log4netConfig = new System.IO.FileInfo(Server.MapPath(System.Configuration.ConfigurationManager.AppSettings["log4netConfigFilePath"]));
log4net.Config.XmlConfigurator.ConfigureAndWatch(log4netConfig);
6 – Get an instance of the logger, by passign teh logger name. which you defined in the log4net config file
private static readonly ILog logger = LogManager.GetLogger("BLOND_MOBILE");
