Web.config setting for log4net.

  <configSections>
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
   <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net, Version=1.2.15.0, Culture=neutral, PublicKeyToken=1b44e1d426115821" />
  </configSections>

    <log4net>
    <appender name="FileAppender" type="log4net.Appender.RollingFileAppender, log4net">
      <file type="log4net.Util.PatternString" value="logs\EnergyNetLog.txt" />
      <rollingStyle value="Date" />
      <datePattern value="\\\\yyyy\\\\MMM\\\\dd_MM_yyyy" />
      <appendToFile value="true" />
       <maxSizeRollBackups value="5" />
       <maximumFileSize value="10MB" />
      <preserveLogFileNameExtension value="true" />
    <staticLogFileName value="false" />
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %level %logger - %message%newline" />
      </layout> 
      <filter type="log4net.Filter.LevelRangeFilter">
        <levelMin value="INFO" />
        <levelMax value="FATAL" />
      </filter>
    </appender>
    <root>
      <level value="DEBUG" />
      <appender-ref ref="FileAppender" />
    </root>
  </log4net>

How to insert log at run time in text file.

using EnergiNet.Models;
using log4net;
using MySql.Data.MySqlClient;
using Newtonsoft.Json;
using System.Collections.Generic;
using System.Configuration;
using System.Threading;
using System.Threading.Tasks;
using System.Web.Configuration;
using System.Web.Mvc;
using static EnergiNet.FilterConfig;

namespace EnergiNet.Controllers
{
    public enum WebCallType
    {
        Authorizations = 1,
        Timeseries = 0
    }

    [LogErrors]
    public class HomeController : Controller
    {
        private static readonly log4net.ILog log = log4net.LogManager.GetLogger
        (System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

        private Utility.Utility util;
        private bool connection_open;
        private MySqlConnection connection;

        public HomeController()
        {
            log4net.Config.BasicConfigurator.Configure();
            ILog log = log4net.LogManager.GetLogger(typeof(Energinet));
            util = new Utility.Utility();
            Get_Connection();
        }

        public ActionResult Index()
        {
            ViewBag.Message = "Home";
            return View();
        }

        public async Task<ActionResult> Meter()
        {

            try
            {

                    log.Info("Dump: Completed");
            }
            }
            catch (System.Exception ex)
            {
                throw;
            }
            return View();
        }


    }
}

LogError Attribute : That logs error generate within controller.

  public class LogErrorsAttribute : FilterAttribute, IExceptionFilter
        {
            #region IExceptionFilter Members

            void IExceptionFilter.OnException(ExceptionContext filterContext)
            {
                if (filterContext != null && filterContext.Exception != null)
                {
                    string controller = filterContext.RouteData.Values["controller"].ToString();
                    string action = filterContext.RouteData.Values["action"].ToString();
                    string loggerName = string.Format("{0}Controller.{1}", controller, action);
                    string Ip = filterContext.HttpContext.Request.UserHostAddress;
                    string HostName = filterContext.HttpContext.Request.UserHostName;
                    string Identity = filterContext.HttpContext.Request.LogonUserIdentity.Name;
                    log4net.LogManager.GetLogger(loggerName).Error(string.Empty, filterContext.Exception);
                }

            }

            #endregion
        }