log4net is
a tool to help the programmer output log statements to a variety of output
targets.
SETUP:
2.
For
each project, add reference to log4net.dll assembly. Though all configuration will be in the main
API project, other projects will require the assembly reference as well.
3.
Configuration
files to be included are:
a. Log4net.config
b. Web.config
c. Settings.xml
d. Global.asax.cs
4.
Note
that the <appsettings> node of the web.config file has been abstracted
into a separate file — Settings.xml.
These settings will be referenced in the web.config in the following
line of code:
<appSettings file=“c:webappslog4sampleconfigsettings.xml“/>
APPLICATION:
1. In your web.config file, enter the
following:
<configSections>
<section name=“log4net“ type=“log4net.Config.Log4NetConfigurationSectionHandler,
log4net“/>
</configSections>
2. Now, add the logging configuration
values. These can be added in your
web.config(or app.config) but in this scenario, it has its own configuration
file – log4net.config:
<log4net>
<appender name=“RollingFile“ type=“log4net.Appender.RollingFileAppender“>…..
</log4net>
3. Then,
you will want to add the path to the file in your <appSettings> node:
<add key=“logPath“ value=“c:webappslog4sampleconfiglog4net.config“ />
4. In your
Global.asax file, add the following to the Application_Start() method:
//log4net setup:
var logPath = (ConfigurationManager.AppSettings[“logPath”]);
log4net.Config.XmlConfigurator.ConfigureAndWatch(new FileInfo(logPath));
EXTRA:
You can also
add a helper method to customize your logging and add details that would help
with your debugging:
public class Log4NetHelper
{
public string LogMsg(Message m, [Optional] string exceptionMsg, [CallerMemberName] string methodName = “”)
{
string msg = $”{methodName} {m} {exceptionMsg}“;
return msg;
}
}
To
reference:
private readonly Log4NetHelper _msg = new Log4NetHelper();
_logger.Debug(_msg.LogMsg(Log4NetHelper.Message.InitialRequestStart));