Skip to main content
Go Search

Ayman El-Hattab's Blog [MVP]

Ayman El-Hattab's Blog
Marwan Tarek's Blog
Mohamed Yehia's Blog

SharePoint 4 Arabs - Online SharePoint Training, Video Tutorials and Webcasts in Arabic > Ayman El-Hattab's Blog [MVP] > Posts > SharePoint Logging Library
SharePoint Logging Library
In my article "Simplifying SharePoint Debugging By Creating the Troubleshooting Toolbox", I have stated the following :

"I’d also like to point out that you can write code that incorporates logging to MOSS logs. Writing to the same trace log alleviates the need for developers to log their development information in other places such as the Windows Event Log, which is more commonly used by system administrators."
Unfortunately this comes with 3 gotchas :

  1. You cannot set the log event level (e.g. low, medium, and critical) as it’ll always display the error level in the trace logs as High.
  2. Also you cannot control the trace category as it'll always display the category as "General".
  3. The logger is located in 12\ISAPI \Microsoft.Office.Server.dll and therefore it’s only available with the MOSS install, not WSS 3.0.
What if you need to write into SharePoint trace logs while having full control on the error level and category?

Enter SharePoint Logging Library !

  1. Get the "SharePoint Logging Library" from CodePlex.

  2. Add a reference to AymanElHattab.SharePoint.Logging.dll .
  3. Add a using statement to AymanElHattab.SharePoint.Logging namespace.
  4. Use the library as follows :

    SharePointLogger.LogWarning("Hello SharePointers");
    SharePointLogger.LogInformation("x = " + x);
    SharePointLogger.LogMessageWithSeverityAndCategory("Hi", SharePointLogger.TraceSeverity.High, "My Category");
  5. Get your code executed , then open the trace logs.

As you might have noticed :
  1. You can call the public methods SharePointLogger.LogStartOfMethod() and SharePointLogger.LogEndOfMethod() for writing to SharePoint Trace Logs .You don't need to pass the method or class name, this will be automatically logged by Reflection as shown in the figure above : "Beginning of NameSpace.ClassName.MethodName Method".
  2. You can control the severity and the category when you use the LogMessageWithSeverityAndCategory() Method.
  3. "General" is the default category when you use the methods that doesn't accept a parameter for the category.
  4. You can log exceptions and their stack traces by passing the exception object to the public LogException() Method.


Works Great - Thanks

I used the assembly to pinpoint the cause of an issue today - it's easy to use and works very well. Thanks for doing this.
at 10/14/2009 10:44 PM

Add Comment

Items on this list require content approval. Your submission will not appear in public views until approved by someone with proper rights. More information on content approval.


Body *