Log4Net Custom Logger for SharePoint 2010 and 2013 (With Attached working Code)

Tags: SharePoint 2013, SharePoint 2010, Log4Net

Thanks to Basant Pandey... Blog

What is the Problem

The big problem in SharePoint 2010/2013 to write the custom error to log files, whenever the error comes, and its associate correlation GUID display to the user and against this correlation id log logs in 14 hive folder, we are check the log by identify its correlation GUID for specific error. The log file also contains the bunch of other information as well. It would be great if we can somehow creates the custom logging feature for our project specific this would be great and it will reduced our efforts and it would be a big win for me as a developer.



Solution
we would able to solve this problem by using 3rd party open source DLL “log4net” . We have written some custom classes to override the base function that would help us to write SharePoint logs into the 14 hive. These classes contain the logic for generating the logs under the same location, where the SharePoint logs are generated i.e 14 hives under different folder (This will help to get the exact information during the error and trace).

Solution Dependency Log4Net Dll

Important Configuration In SharePoint we will map the ISAPI folder and place the web.config file.



Web.config file make sure you have gave the right file reference “ApplicationRollingFileAppenderFullLogs” must be have correct type name ie you custom css file name space that pointing to the your custom Rolllingfile Appender file "CustomLoggerUsinglog4net. RollingFileAppender".Log4Net Custom logger is used to create the custom logger file that could be used for Under this folder: ISAPI\CustomLoggerUsinglog4net\Web.config




<threshold value="DEBUG" /> (On debugging Global)
<threshold value="OFF" /> (Global Debugging off)
Note: Please un-comment the below <threshold value="DEBUG" /> from the below attached code.


Code Implementation - Inside the Web Part


Log directory




To work this code on 2013 as well you would required to change the following lines of code.
File Name: CustomBaseLogger.cs
private static string m_spLogFolder = "C:\\Program Files\\Common Files\\Microsoft Shared\\Web Server Extensions\\15\\LOGS";
File name: LoggerUtil.cs
String genericSetupPath=SPUtility.GetVersionedGenericSetupPath("ISAPI", 15);

Advantages of Custom Logger. 
1. Create the log in SharePoint as per the project.
2. Easily find the errors (no need to use the SharePoint ULS viewers).
3. Now SharePoint Errors and Our custom codes as can be categories using this method.