You may have read several articles on how to use log4net; however, this article explains how you can use it without having to initialize several times.
Log4Net is a framework for implementing logging mechanisms. It is an open source framework.
Log4net provides a simple mechanism for logging information to a variety of sources. Information is logged via one or more loggers. These loggers are provided at the below levels of logging:
- Debug
- Information
- Warnings
- Error
- Fatal
Now let’s begin with implementation.
Add log4net Package
For this, you need to install log4net from NuGet Package Manager to your ASP.NET MVC project as per the below screen.
![log4net]()
Add Global.asax for loading log4net configuration
Once installation is done, you need to add the below code in Application_Start() of Global.asax
- log4net.Config.XmlConfigurator.Configure();
Add log4net in config file
No,w open web.config and enter the following details.
- <configSections>
- <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
- </configSections>
-
- t;log4net>
- <appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
- <file value="C:\Temp\nSightsLog.log" />
- <appendToFile value="true" />
- <maximumFileSize value="500KB" />
- <maxSizeRollBackups value="2" />
- <layout type="log4net.Layout.PatternLayout">
- <conversionPattern value="%date %level %logger - %message%newline" />
- </layout>
- </appender>
- <root>
- <level value="All" />
- <appender-ref ref="RollingFile" />
- </root>
- </log4net>
Implementing in specific file for accessing throughout application
Add a class Log.cs in the Utilities folder.
Now, in the constructor of this class, instantiate logs for monitoring and debugger loggers.
- private Log()
- {
- monitoringLogger = LogManager.GetLogger("MonitoringLogger");
- debugLogger = LogManager.GetLogger("DebugLogger");
- }
Here, you need to create Debug(), Error(), Info(), Warn(), Fatal() methods which will call respective methods from Log4 net.
Below is a sample.
- public class Log
- {
- private static readonly Log _instance = new Log();
- protected ILog monitoringLogger;
- protected static ILog debugLogger;
-
- private Log()
- {
- monitoringLogger = LogManager.GetLogger("MonitoringLogger");
- debugLogger = LogManager.GetLogger("DebugLogger");
- }
-
-
-
-
-
-
-
- public static void Debug(string message)
- {
- debugLogger.Debug(message);
- }
-
-
-
-
-
-
-
- public static void Debug(string message, System.Exception exception)
- {
- debugLogger.Debug(message, exception);
- }
-
-
-
-
-
-
- public static void Info(string message)
- {
- _instance.monitoringLogger.Info(message);
- }
-
-
-
-
-
-
-
- public static void Info(string message, System.Exception exception)
- {
- _instance.monitoringLogger.Info(message, exception);
- }
-
-
-
-
-
- public static void Warn(string message)
- {
- _instance.monitoringLogger.Warn(message);
- }
-
-
-
-
-
-
- public static void Warn(string message, System.Exception exception)
- {
- _instance.monitoringLogger.Warn(message, exception);
- }
-
-
-
-
-
- public static void Error(string message)
- {
- _instance.monitoringLogger.Error(message);
- }
-
-
-
-
-
-
- public static void Error(string message, System.Exception exception)
- {
- _instance.monitoringLogger.Error(message, exception);
- }
-
-
-
-
-
-
- public static void Fatal(string message)
- {
- _instance.monitoringLogger.Fatal(message);
- }
-
-
-
-
-
-
- public static void Fatal(string message, System.Exception exception)
- {
- _instance.monitoringLogger.Fatal(message, exception);
- }
-
-
- }
Now, you need to call the logger class that logs directly into your action method.
- public ActionResult Login()
- {
-
- Log.Info("Login-page started...");
-
-
- return View();
- }