Note
This post originally appeared on my MSDN blog:
Since
I no longer work for Microsoft, I have copied it here in case that blog
ever goes away.
This post continues on the original post for my
simple, but highly effective approach to logging and the follow-up post which
introduced
configuring logging for console applications.
Obviously not all solutions are simple console-based applications. With ASP.NET
Web services and applications -- including Microsoft Office SharePoint Server (MOSS)
and Windows SharePoint Services (WSS) -- you can still view log messages from the
Logger
class very easily on a per-request basis.
Note that the
System.Web.WebPageTraceListener can be specified in Web.config to enable logging
to the ASP.NET tracing feature:
<system.diagnostics>
<sources>
<source name="defaultTraceSource" switchName="allTraceLevel">
<listeners>
<add name="webPageTraceListener" />
</listeners>
</source>
</sources>
<sharedListeners>
<add type="System.Web.WebPageTraceListener, System.Web, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
name="webPageTraceListener" traceOutputOptions="None" />
</sharedListeners>
<switches>
<add name="allTraceLevel" value="All" />
<add name="verboseTraceLevel" value="Verbose" />
<add name="infoTraceLevel" value="Info" />
<add name="warningTraceLevel" value="Warning" />
<add name="errorTraceLevel" value="Error" />
<add name="offTraceLevel" value="Off" />
</switches>
</system.diagnostics>
Also note that ASP.NET tracing must be enabled using the
<trace>
element within <system.web>
:
<system.web>
<trace enabled="true" pageOutput="false" requestLimit="50" localOnly="true" />
</system.web>
Be sure to set the requestLimit
high enough to enable access to the page trace you are interested in, but also be
aware that you can easily clear the captured traces and then browse to the page
of interest again.
Once configured, browse to the page on the site. Then modify the URL to browse
to Trace.axd (e.g. http://fabrikam-local/Trace.axd)
to display the Trace Viewer.
Figure 1: ASP.NET Trace Viewer
Locate the request that you want to view log messages for and click the corresponding
View Details link.
Figure 2: ASP.NET Trace Viewer - Request Details
Notice that the
WebPageTraceListener even formatted the warning message in red. How cool is
that?! [For all you SharePoint developers out there, compare this with "diving"
into the ULS logs to find an error or warning for a particular page request!]
Be aware that the Web.config file you use for SharePoint applications varies
depending on whether you want to view log messages for a content page or for an
application (i.e. _layouts) page. This is covered in my
next post.