SUMMARY
There are two
Trace classes in the Microsoft .NET Framework library:
System.Diagnostics.Trace and
System.Web.TraceContext. These
Trace classes are frequently confused with each other. However, each one is used for a specific purpose.
You typically use the
System.Diagnostics.Trace class to debug console applications or Windows Forms applications. You use
System.Web.TraceContext only in Microsoft ASP.NET applications. To display
Trace.Write statements on an ASP.NET page from a Class Library, you must use the
System.Web namespace. The following examples describe how to use
Trace.Write from a Class Library in an ASP.NET application.
back to the top
Create the ASP.NET Application
By default,
Trace is not enabled in an ASP.NET application. You can enable
Trace either at the page level or at the application level. The following steps describe how to create an ASP.NET application, and then how to enable
Trace at the page level.
- Start Microsoft Visual Studio .NET.
- On the File menu, point to New, and then click Project.
- In the New Project dialog box, click Visual Basic Projects under Project Types, and then click ASP.NET Web Application under Templates.
- In the Location box, type the following URL to name the project: http://localhost/VBNETTrace. Click OK.
The New Project dialog box closes, and an ASP.NET application is created. The design editor loads with WebForm1.aspx loaded in the Design window.
- To enable page level Trace for WebForm1.aspx, point to View, and then click HTML Source. Locate the following line of code:
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm1.aspx.vb" Inherits="VBNETTrace.WebForm1"%>
Add Trace="True", so that the code reads:
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm1.aspx.vb" Inherits="VBNETTrace.WebForm1" Trace="True"%>
Trace is now enabled only for WebForm1.aspx.
- To save WebForm1.aspx, click File, and then click Save.
back to the top
Trace from a Class File
With
Trace enabled, follow these steps to create a class and then to execute
Trace commands from that class.
- To add a class file, in Solution Explorer, right-click VBNETTrace, point to Add, and then click Add Class. The Add New Item dialog box appears.
- In the Name box, accept the default Class1.vb. Click Open. The Add New Item dialog box closes, and then Class1.vb opens in the editor window.
- Add the following directive at the top of Class1.vb:
Imports System.Web
Add the following code to Public Class1:
Public Function Add(ByVal a As Int32, ByVal b As Int32) As Int32
Dim cur As HttpContext = HttpContext.Current
If Not cur Is Nothing Then
cur.Trace.Write("The value for a is", a.ToString())
+ cur.Trace.Write("The value for b is", b.ToString())
End If
End Function
This method first accesses HttpContext class and then verifies that the context is not Nothing. When you gain access to the HttpContext class, you can call Trace class output when you call the cur.Trace.Write method. - To save the file, click Save on the File menu.
- To test and to use the Add method, follow these steps:
- Right-click WebForm1.aspx in Solution Explorer, and then click View Code.
- In the Page Load event, add the following lines of code:
Dim clsAdd As Class1 = New Class1()
Dim answer As Int32 = clsAdd.Add(1, 2)
- To build the page, right-click WebForm1.aspx in Solution Explorer, and then click Build.
- To view the page, right-click WebForm1.aspx in Solution Explorer, and then click Browse. Notice that WebForm1.aspx opens in the browser with Trace enabled. Under the Trace Information section, notice that the following lines of code are added:
The value for a is 1
The value for b is 2
back to the top
Enable Trace for the Application
To enable
Trace for the whole application (and not just for a single page), you must enable
Trace in the Web.config file. Follow these steps to enable
Trace on an application-wide basis.
- In Solution Explorer, right-click Web.config, and then click Open to edit the Web.config file.
- Locate the following code:
<trace
enabled="false"
requestLimit="10"
pageOutput="false"
traceMode="SortByTime"
localOnly="true"
/>
and modify it so that it reads:
<trace
enabled="true"
requestLimit="10"
pageOutput="true"
traceMode="SortByTime"
localOnly="true"
/>
back to the top