Willie Cheng Willie Cheng - 1 year ago 131
C# Question

How to configure / setup Log4Net with ASP.NET ( included MVC) C# in Visual Studio 2012~

I want to record software process logs to files. Rather than make my own log system, I am trying to use Log4Net with ASP.NET MVC, but I have run into problems setting it up in Visual Studio 2015, like:


  1. How to setup web.config / Global.asax page?

  2. How to install components in VS 2015?

  3. How to use it in my
    *.cs
    file?



What are the steps to properly configure Log4Net With ASP.NET MVC C# in Visual Studio 2015?

I also wrote a Q&A to set it up for ASP.NET WebForms,
see How to use Log4net from Nuget with Visual Studio platform in the ASP.NET Web Form (Easy method).

Answer Source

Step1: use Nuget to get the log4net package:

enter image description here

Step2: tell log4net to initialize itself from the XML configuration (Web.config), by adding this call in the Global.asax.cs file under Application_Start():

log4net.Config.XmlConfigurator.Configure();

enter image description here

Step3: add the configuration section in Web.config between tag <configSections>...</configSections>:

  <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />

enter image description here

Insert the actual log4net configuration <log4net>...</log4net>, see Apache log4netâ„¢ Config Examples for more examples:

<log4net debug="true">
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="logs\log.txt" />
      <appendToFile value="true" />
      <rollingStyle value="Size" />
      <maxSizeRollBackups value="10" />
      <maximumFileSize value="100KB" />
      <staticLogFileName value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%-5p %d %5rms %-22.22c{1} %-18.18M - %m%n" />
      </layout>
    </appender>
    <root>
      <level value="DEBUG" />
      <appender-ref ref="RollingLogFileAppender" />
    </root>
  </log4net>

enter image description here

Now you're ready to make calls to an ILog to write actual log statements to the configured appender(s):

ILog log = log4net.LogManager.GetLogger(typeof(HomeController));      

public ActionResult Index()
{
    log.Debug("Debug message");
    log.Warn("Warn message");
    log.Error("Error message");
    log.Fatal("Fatal message");
    ViewBag.Title = "Home Page";
    return View();
}

enter image description here

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download