10.5. Uncovering Problems Within Dual-Use Components
Problem
Because you intend to use a business component in both web and non-web applications, you want to enable tracing within the component without having to reference its current HTTP context.
Solution
Create your own trace listener
that inherits
from the TraceListener
class, overrides the
Write
and WriteLine
methods,
and references the current HTTP context to output the message. A
sample trace listener we’ve written to illustrate
this solution is shown in Example 10-12 (VB) and Example 10-13 (C#).
Next, modify web.config
, as
shown in Example 10-14, to add the listener to the
Listeners
collection and make it available to your
application.
In your non-web-specific components, add plain-vanilla
Trace.Write
statements to output any desired
information to the trace log, as shown in our sample component in
Example 10-15 (VB) and Example 10-16
(C#).
A web form and the associated VB and C# code-behind we’ve written to test the tracing in our non-web-specific component are shown in Example 10-17 through Example 10-19.
Discussion
The .NET Framework uses the
concept of trace
listeners in its handling of trace messages. By default,
the TraceListeners
collection contains a single
listener (DefaultTraceListener
) when you enable
tracing. Additional listeners can be added via the
web.config
file or programmatically. When a
Trace.Write
is executed, all listeners in the
TraceListeners
collection receive and process the message. It is this mechanism ...
Get ASP.NET Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.