Log4net library is a tool to help the programmer output log statements to a variety of output targets.
You may use below steps to configure Log4Net in SharePoint 2016 On Premise.
For this demonstration I have used my SharePoint Site: http://sps2012:1111/Pages/default.aspx
First Create SharePoint Solution
Next select Deploy as Farm Solution as we need to Deploy Log4Net DLL on our SharePoint Server GAC.
Here I am going to create 2 separate projects. 1 For Logging Application and 2 for SharePoint Web Parts where we can create our web parts. We can modify Logging Project as per our requirement without making any kind of changes in Web Parts Project.
Next let’s install Log4Net using NuGet Package Manager
Select Project -> Right Click on Project – >Select Manage NuGet Packages
Search Or Browse for log4net by Apache Software Foundation
Click on Install
When you click on Install it will preview changes which is going to be added in project
Click on Ok and it will install log4Net in Project
After Installation we are able to see Log4Net reference in project
Next Step is to build solution
Once we build solution we are able to see log4net.dll in Debug folder of solution.
Now we need to use this DLL: log4net.dll in SharePoint Web Part Project. So that we can create web part and check Logging Functionality.
Create WebPart in SP.WebParts Projects.
I have added WebPart and also updated its information as shown in Image
Now we need to refer Log4Net.dll in project
Navigate to Project -> References -> Right Click on Add Reference
It will open window. Click on Browse and select log4Net.dll file. Make sure you select correct file which we have added in SP.Log4Net.Solution Project. You can also copy log4Net.dll from bin folder and keep it on your desired location where you can assign reference to project.
Once you click on Ok it will add reference in Web Parts Project.
For Demonstration purpose I am going to add button on Visual Web Part and on its click event going to add Log Information so that we can create log using log4Net.dll file.
I have added button into web part and added Log Information. Now we are able to deploy this solution on SharePoint.
Also we need to keep in mind that Log4Net.Dll is also needs to deploy with Visual Web Part so that SharePoint Server can refer it in application.
To add custom dll reference in SharePoint Select Package and Open it.
Navigate to Advance
Click on Add Existing Assembly (As we already have log4Net.dll)
And select log4Net.dll from your project or saved directory location
Click on OK and this will add log4Net.dll in project’s package which eventually deploys dll in GAC.
Save Project and deploy it
Till now we have added log4Net.dll into project and its reference for logging mechanism. But we also needs to configure require information for Log4Net.
We can configure Log4Net configuration in SharePoint Web Application Web.Config and global.asax File.
As you are aware that we are using our SharePoint Application: : http://sps2012:1111/Pages/default.aspx
Next Navigate to C:\inetpub\wwwroot\wss\VirtualDirectories\1111 where we are able to find global.asax and web.config file.
Add Following code in global.asax
<%@ Assembly Name="Microsoft.SharePoint"%><%@ Application Language="C#" Inherits="Microsoft.SharePoint.ApplicationRuntime.SPHttpApplication" %>
<%@ Assembly Name="log4net, Version=188.8.131.52, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a" %>
<%@ Import Namespace="log4net" %>
<%@ Import Namespace="log4net.Config" %>
<%@ Import Namespace="System.IO" %>
<script language="C#" runat="server">
void Application_Start(object sender, EventArgs e)
Note: If you are getting an error while adding log4net dll information in Global.asax then it may be due to dll is not added in GAC.
You may read my post regarding How to Add DLL in GAC and How to Get DLL Publickeytoken
Now let’s updateWeb.Config File
Open Web.config file
And add below section in “<configSections>”
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" requirePermission="false" />
Also Add below configuration in “<configuration>” section
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="C:\Program Files\Common Files\microsoft shared\Web Server Extensions\16\LOGS\log4net\Logs\ApplicationLog" />
<appendToFile value="true" />
<rollingStyle value="Composite" />
<datePattern value=".yyyyMMdd-HHmm" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
<level value="ERROR" />
<appender-ref ref="RollingFileAppender" />
<appender-ref ref="SmtpAppender" />
Note that you can change or update this log4Net configuration as per your own requirement.I have added Configuration value so that I can create log on each minute with dynamic file name added HHMM value.
Now we are done with all configurations and it’s time to test functionality.I have created Page named “CustomLog.aspx” and added web part Custom Log on it.
Now when we click button Add Log Information it will create log with string “Log Detail Information” on our mentioned location. Make sure here location is file Creation location which we have mentioned in web.config file for log4net configuration.
Once you click button you can see log as below
Also note that I have configured log mechanism as per each minute so that we can create or see log on each and every minute as shown in below image
From above steps we learn how we can configure log4Net with SharePoint 2016.