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.



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

    SharePointLogger.LogWarning(“Hello SharePointers”);
    SharePointLogger.LogInformation(“x = ” + x);
    SharePointLogger.LogMessageWithSeverityAndCategory(“Hi”, SharePointLogger.TraceSeverity.High, “My Category”);

  4. 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.

Beginning SharePoint Development Available Now!

It’s here – after a far too long wait – the next issue of Understanding SharePoint Journal.

The topic this time, as you likely know, is Beginning SharePoint Development. If you are an aspiring developer, or if you have a lot of experience as a developer on other platforms, this issue is for you.

The issue, spanning 128 pages, covers the following aspects of SharePoint development:

  • Creating the development environment
  • Overview of SharePoint from a developer’s perspective
  • SharePoint development core concepts
  • Data development in SharePoint
  • Event handlers and workflows in SharePoint
  • SharePoint web part development
  • Development of visual elements

You’ll also get 21 videos lasting more than 3 hours and 15 minutes, walking you through the steps of the exercises and showing you some additional and useful tips and tricks.

I won’t hold you here no more, here is the URL: