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
}