473,396 Members | 1,773 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,396 software developers and data experts.

calling Trace.Write() from classes besides the page class

I've noticed that if you enter the following code in the codebehind
page for an .aspx page, it won't compile because the call to
Trace.Write() is not valid except in methods of a class derived from
System.Web.UI.Page. Two questions:
1) I don't know much about C# but I was under the impression that if
certain classes and functions were available in a namespace (as the
result of a "using" statement at the top of a file), then they were
available throughout the namespace. If Trace.Write() is available as
the result of one of the "using" statements at the top of the
codebehind file, then how is it not available in the MyClass class?
And if Trace.Write() is not imported by any of the "using" statements,
then how is it available to the WebForm1 class?
2) In that case, is there any way to call Trace.Write() statements
from classes other than the page class, to aid in debugging? I added
"using System.Diagnostics;" to the beginning of the code so that I
could call Trace.Write() from the "MyClass" class, but the output
still didn't show up in the trace.

-Bennett

Here's the code:
*****
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace tracetest
{
public class MyClass
{
public MyClass()
{
Trace.Write("MyCategory", "MyMessage");
}
}
/// <summary>
/// Summary description for WebForm1.
/// </summary>
public class WebForm1 : System.Web.UI.Page
{

private void Page_Load(object sender, System.EventArgs e)
{
Trace.Write("MyCategory", "MyMessage");
// Put user code to initialize the page here
}

#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web
// Form Designer.
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion
}
}
Nov 17 '05 #1
5 3064
"Steve C. Orr, MCSD" <St***@Orr.net> wrote in message news:<uM**************@TK2MSFTNGP12.phx.gbl>...
Use System.Web.TraceContext.Write from your classes.

Here's more info:
http://msdn.microsoft.com/library/de...classtopic.asp


I tried calling System.Web.TraceContext.Write() in the constructor of
my class, and then calling the constructor from the Page_Load method,
but it still didn't write to the trace output. When I run the code
below as a codebehind for WebForm1, I see the "MyMessage1" and
"MyMessage2" traces, but I don't see the "MyClassCategory" trace
called from within the constructor. Am I doing something wrong? I
assume I'm supposed to initialize the System.Web.TraceContext object
by passing HttpContext.Current to the constructor?

Here's the code:

*******
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace tracetest
{
public class MyClass
{
public MyClass()
{
System.Web.TraceContext x =
new
System.Web.TraceContext(HttpContext.Current);
x.Write("MyClassCategory", "MyMessage");
}
}
/// <summary>
/// Summary description for WebForm1.
/// </summary>
public class WebForm1 : System.Web.UI.Page
{

private void Page_Load(object sender, System.EventArgs e)
{
MyClass x = new MyClass();
Trace.Write("MyCategory", "MyMessage1");
Trace.Write("MyCategory", "MyMessage2");
// Put user code to initialize the page here
}

#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET
// Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion
}
}
Nov 17 '05 #2
"Steve C. Orr, MCSD" <St***@Orr.net> wrote in message news:<uM**************@TK2MSFTNGP12.phx.gbl>...
Use System.Web.TraceContext.Write from your classes.

Here's more info:
http://msdn.microsoft.com/library/de...classtopic.asp


I tried calling System.Web.TraceContext.Write() in the constructor of
my class, and then calling the constructor from the Page_Load method,
but it still didn't write to the trace output. When I run the code
below as a codebehind for WebForm1, I see the "MyMessage1" and
"MyMessage2" traces, but I don't see the "MyClassCategory" trace
called from within the constructor. Am I doing something wrong? I
assume I'm supposed to initialize the System.Web.TraceContext object
by passing HttpContext.Current to the constructor?

Here's the code:

*******
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace tracetest
{
public class MyClass
{
public MyClass()
{
System.Web.TraceContext x =
new
System.Web.TraceContext(HttpContext.Current);
x.Write("MyClassCategory", "MyMessage");
}
}
/// <summary>
/// Summary description for WebForm1.
/// </summary>
public class WebForm1 : System.Web.UI.Page
{

private void Page_Load(object sender, System.EventArgs e)
{
MyClass x = new MyClass();
Trace.Write("MyCategory", "MyMessage1");
Trace.Write("MyCategory", "MyMessage2");
// Put user code to initialize the page here
}

#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET
// Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion
}
}
Nov 17 '05 #3
Hi,

HttpContext.Current.Trace.Write(); should do the trick.

Natty Gur, CTO
Dao2Com Ltd.
34th Elkalay st. Raanana
Israel , 43000
Phone Numbers:
Office: +972-(0)9-7740261
Fax: +972-(0)9-7740261
Mobile: +972-(0)58-888377
*** Sent via Developersdex http://www.developersdex.com ***
Don't just participate in USENET...get rewarded for it!
Nov 17 '05 #4
Hi,

HttpContext.Current.Trace.Write(); should do the trick.

Natty Gur, CTO
Dao2Com Ltd.
34th Elkalay st. Raanana
Israel , 43000
Phone Numbers:
Office: +972-(0)9-7740261
Fax: +972-(0)9-7740261
Mobile: +972-(0)58-888377
*** Sent via Developersdex http://www.developersdex.com ***
Don't just participate in USENET...get rewarded for it!
Nov 17 '05 #5
Why is it not possible to use the Trace.Write from System.Diagnostics ? The
code is simply skipped ... It works in an ASP.NET project, but not in
another ...

Strange ...

Any help appreciated.
Thanks
Didier Kuttel

"Bennett Haselton" <be*****@peacefire.org> wrote in message
news:e6**************************@posting.google.c om...
I've noticed that if you enter the following code in the codebehind
page for an .aspx page, it won't compile because the call to
Trace.Write() is not valid except in methods of a class derived from
System.Web.UI.Page. Two questions:
1) I don't know much about C# but I was under the impression that if
certain classes and functions were available in a namespace (as the
result of a "using" statement at the top of a file), then they were
available throughout the namespace. If Trace.Write() is available as
the result of one of the "using" statements at the top of the
codebehind file, then how is it not available in the MyClass class?
And if Trace.Write() is not imported by any of the "using" statements,
then how is it available to the WebForm1 class?
2) In that case, is there any way to call Trace.Write() statements
from classes other than the page class, to aid in debugging? I added
"using System.Diagnostics;" to the beginning of the code so that I
could call Trace.Write() from the "MyClass" class, but the output
still didn't show up in the trace.

-Bennett

Here's the code:
*****
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace tracetest
{
public class MyClass
{
public MyClass()
{
Trace.Write("MyCategory", "MyMessage");
}
}
/// <summary>
/// Summary description for WebForm1.
/// </summary>
public class WebForm1 : System.Web.UI.Page
{

private void Page_Load(object sender, System.EventArgs e)
{
Trace.Write("MyCategory", "MyMessage");
// Put user code to initialize the page here
}

#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web
// Form Designer.
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion
}
}

Nov 17 '05 #6

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

9
by: F. GEIGER | last post by:
I've dev'ed a Python prototype of an app, that besides the internals making it up has a gui. While test-driven dev'ing the app's internals in Python is fun as usual, dev'ing the GUI is not so...
19
by: Ross A. Finlayson | last post by:
Hi, I hope you can help me understand the varargs facility. Say I am programming in ISO C including stdarg.h and I declare a function as so: void log_printf(const char* logfilename, const...
2
by: Kevin | last post by:
Hi All, Can someone please tell me what the difference is between DEBUG and TRACE. From what I can see, they are two different classes, but with the same members? Whats the purpose of have two...
1
by: dhornyak | last post by:
I have been banging my head against the wall for a while now, and can't seem to id the problem. I've been through a ton of posts and the code doesn't seem any different. Can anybody see it? When...
0
by: Bennett Haselton | last post by:
I've noticed that if you enter the following code in the codebehind page for an .aspx page, it won't compile because the call to Trace.Write() is not valid except in methods of a class derived from...
5
by: martin | last post by:
Hi, The trace class seems to me to be very usefull however there are a few features of it that have to confused. I am using visual studio 2003. the IDE will not let me write ...
1
by: H Branyan | last post by:
In the Application_OnStart event in global.asax, my code calls an AlertService which creates a System.Timers.Timer() object. So this service doesn't actually run in conjunction with a specific...
5
by: Nick Flandry | last post by:
I'm running into an Invalid Cast Exception on an ASP.NET application that runs fine in my development environment (Win2K server running IIS 5) and a test environment (also Win2K server running IIS...
3
by: Jerome Cohen | last post by:
AI am trying to call a third-party web service. this service expects an XML fragment that contains the request plus other parameter. adding the web reference created the syntax below(reference.vb)....
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.