Skip to main content

Use Log4Net in C# windows form Application

we are going to learn on how to use the Log4Net library for creating logs. Create a new windows form application in VS.

  1. Install Log4Net library
  2. Add to AssemblyInfo.cs 
  3. Configure in App.config
  4. Use in code 
Install Log4Net library
Then install the Log4Net library from the Nuget Package library.

  •           log4net by The Apache software foundation 2.0.8 (i installed the latest).


Add to AssemblyInfo.cs 
After installing this package, open up AssemblyInfo.cs file under the Properties folder and add the log4net assembly information into it (under the other assembly information.).
   [assembly: log4net.Config.XmlConfigurator(Watch=true)] 


Configure in App.config
Now, open the App.config file and enter required details for LogNet to work.

<configSections>  
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821" /> </configSections>  
<!-- Log4net Logging Setup -->  
<log4net>  
    <appender name="FileAppender" type="log4net.Appender.FileAppender,log4net">  
        <file value="D:\\POC\\MVPProject\\MVPProject\\Log\\mylogfile.txt" />  
        <!-- the location where the log file would be created -->  
        <appendToFile value="true" />  
        <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>  

Use in code 
Use it in form like below,
public partial class Form1 : Form
    {
        public log4net.ILog log;


        public Form1()
        {
            log4net.Config.BasicConfigurator.Configure();
            log = log4net.LogManager.GetLogger(typeof(Program));
            InitializeComponent();

            log.Info("form constructor");
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            log.Info("form load");
        }

        private void button1_Click(object sender, EventArgs e)
        {
            log.Info("button click");
        }
    }


Ref : https://haacked.com/archive/2006/01/13/SettingUpLog4NetForMultiLayeredApplications.aspx/
https://www.c-sharpcorner.com/blogs/use-log4net-in-c-sharp-console-application

RollingFileAppender :
<log4net>
<root>
 <level value="DEBUG" />
 <appender-ref ref="LogFileAppender" />
</root>
<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender" >
 <param name="File" value="C:\Try\logger\logger\bin\Debug\log.txt" />
 <param name="AppendToFile" value="true" />
 <rollingStyle value="Size" />
 <maxSizeRollBackups value="10" />
 <maximumFileSize value="10MB" />
 <staticLogFileName value="true" />
 <layout type="log4net.Layout.PatternLayout">
 <param name="ConversionPattern" value="%-5p%d{yyyy-MM-dd hh:mm:ss} – %m%n" />
 </layout>
</appender>
</log4net>

Comments

Post a Comment

Popular posts from this blog

#SQL: How to Drop Database in SQL Server by Closing Existing Connections

How to Drop Database in SQL Server when the users are connected to a SQL Server Database. You may need to closing existing connections in a database before restoring the database, before detaching database, get database in SINGLE_USER mode etc. If you try dropping a database when users are connected to the SQL Server Database you will receive the below mentioned error message. Error Message Drop failed for Database 'RajDB'. (Microsoft.SqlServer.Smo) Cannot drop database "" because it is currently in use. (Microsoft SQL Server, Error: 3702) USE [master] GO ALTER DATABASE RajDB SET SINGLE_USER WITH ROLLBACK IMMEDIATE GO /* Query to Drop Database in SQL Server  */ DROP DATABASE RajDB GO