I am trying to use log4net with ASP.NET MVC and I cannot get anything to happen with it. I\'ve created a config that is in my web project root:
Download Log4Net:
Add reference in ASP.Net MVC 4 application:
Modify Web.config file (source):
<configuration>
<configSections>
<section
name="log4net"
type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net>
<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="LOGS\log.txt"/>
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="2" />
<maximumFileSize value="10MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c %m%n"/>
</layout>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="LogFileAppender" />
</root>
<logger name="test">
<level value="DEBUG"></level>
</logger>
</log4net>
</configuration>
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Web.config", Watch = true)]
protected void Application_Start()
{
log4net.Config.XmlConfigurator.Configure(new FileInfo(Server.MapPath("~/Web.config")));
}
readonly log4net.ILog log =
log4net.LogManager.GetLogger(
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType
);
log.Error("make mistakes");
Further reading: http://anandsonake.blogspot.in/2013/08/log4net-in-aspnet-mvc.html
Ensure that you call
log4net.Config.XmlConfigurator.Configure();
At the startup of your application.
Add below line in AssemblyInfo.cs :
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
Do you have something like this in global.asax?
void Application_Start(object sender, EventArgs e)
{
string l4net = Server.MapPath("~/log4net.config");
log4net.Config.XmlConfigurator.ConfigureAndWatch(new System.IO.FileInfo(l4net));
...