Author: igorz
Date: 2007-11-07 08:55:05 -0500 (Wed, 07 Nov 2007)
New Revision: 89102
Modified:
trunk/mcs/class/System.Web/System.Web.UI/ChangeLog
trunk/mcs/class/System.Web/System.Web.UI/PageParser.cs
trunk/mcs/class/System.Web/System.Web/ChangeLog
trunk/mcs/class/System.Web/System.Web/TraceContext.cs
trunk/mcs/class/System.Web/System.Web/TraceData.cs
Log:
2007-11-07 Igor Zelmanovich <[EMAIL PROTECTED]>
* TraceContext.cs:
* TraceData.cs: implemented TraceMode feature.
2007-11-07 Igor Zelmanovich <[EMAIL PROTECTED]>
* PageParser.cs: fixed initial value of tracemode.
Modified: trunk/mcs/class/System.Web/System.Web/ChangeLog
===================================================================
--- trunk/mcs/class/System.Web/System.Web/ChangeLog 2007-11-07 13:43:35 UTC
(rev 89101)
+++ trunk/mcs/class/System.Web/System.Web/ChangeLog 2007-11-07 13:55:05 UTC
(rev 89102)
@@ -1,5 +1,10 @@
2007-11-07 Igor Zelmanovich <[EMAIL PROTECTED]>
+ * TraceContext.cs:
+ * TraceData.cs: implemented TraceMode feature.
+
+2007-11-07 Igor Zelmanovich <[EMAIL PROTECTED]>
+
* BaseParamsCollection.cs:
ensure collection will not be changed during enumeration.
Modified: trunk/mcs/class/System.Web/System.Web/TraceContext.cs
===================================================================
--- trunk/mcs/class/System.Web/System.Web/TraceContext.cs 2007-11-07
13:43:35 UTC (rev 89101)
+++ trunk/mcs/class/System.Web/System.Web/TraceContext.cs 2007-11-07
13:55:05 UTC (rev 89102)
@@ -40,7 +40,7 @@
HttpContext _Context;
TraceManager _traceManager;
bool _Enabled;
- TraceMode _Mode;
+ TraceMode _Mode = TraceMode.Default;
TraceData data;
bool data_saved;
bool _haveTrace;
@@ -50,7 +50,6 @@
public TraceContext (HttpContext Context)
{
_Context = Context;
- _Mode = TraceMode.SortByTime;
}
internal bool HaveTrace {
@@ -87,7 +86,7 @@
public TraceMode TraceMode {
get {
- return _Mode;
+ return (_Mode == TraceMode.Default) ?
TraceManager.TraceMode : _Mode;
}
set {
_Mode = value;
@@ -139,6 +138,9 @@
{
if (data == null)
data = new TraceData ();
+
+ data.TraceMode = _Context.Trace.TraceMode;
+
SetRequestDetails ();
if (_Context.Handler is Page)
data.AddControlTree ((Page) _Context.Handler,
view_states, sizes);
Modified: trunk/mcs/class/System.Web/System.Web/TraceData.cs
===================================================================
--- trunk/mcs/class/System.Web/System.Web/TraceData.cs 2007-11-07 13:43:35 UTC
(rev 89101)
+++ trunk/mcs/class/System.Web/System.Web/TraceData.cs 2007-11-07 13:55:05 UTC
(rev 89102)
@@ -48,14 +48,16 @@
public string Message;
public string Exception;
public double TimeSinceFirst;
+ public double TimeSinceLast;
public bool IsWarning;
- public InfoTraceData (string category, string message, string
exception, double timeSinceFirst, bool isWarning)
+ public InfoTraceData (string category, string message, string
exception, double timeSinceFirst, double timeSinceLast, bool isWarning)
{
this.Category = category;
this.Message = message;
this.Exception = exception;
this.TimeSinceFirst = timeSinceFirst;
+ this.TimeSinceLast = timeSinceLast;
this.IsWarning = isWarning;
}
}
@@ -119,6 +121,7 @@
private string request_type;
private int status_code;
private Page page;
+ TraceMode _traceMode = HttpRuntime.TraceManager.TraceMode;
public TraceData ()
{
@@ -145,6 +148,11 @@
is_first_time = true;
}
+ public TraceMode TraceMode {
+ get { return _traceMode; }
+ set { _traceMode = value; }
+ }
+
public string RequestPath {
get { return request_path; }
set { request_path = value; }
@@ -183,18 +191,26 @@
public void Write (string category, string msg, Exception
error, bool Warning)
{
double time;
+ double time_from_last;
if (is_first_time) {
time = 0;
+ time_from_last = 0;
+ prev_time = 0;
is_first_time = false;
first_time = DateTime.Now;
- } else
+ }
+ else {
time = (DateTime.Now - first_time).TotalSeconds;
+ time_from_last = time - prev_time;
+ prev_time = time;
+ }
info.Enqueue (
new InfoTraceData (category,
HtmlEncode (msg),
(error != null ?
error.ToString () : null),
time,
+ time_from_last,
Warning));
}
@@ -313,7 +329,15 @@
int pos = 0;
#if NET_2_0
- foreach (InfoTraceData i in info)
+ IEnumerable<InfoTraceData> enumerable = info;
+
+ if (TraceMode == TraceMode.SortByCategory) {
+ List<InfoTraceData> list = new
List<InfoTraceData> (info);
+ list.Sort (delegate (InfoTraceData x,
InfoTraceData y) { return String.Compare (x.Category, y.Category); });
+ enumerable = list;
+ }
+
+ foreach (InfoTraceData i in enumerable)
RenderTraceInfoRow (table, i, pos++);
#else
foreach (object o in info)
@@ -458,16 +482,13 @@
open = "<font color=\"Red\">";
close = "</font>";
}
-
- double t = (double) i.TimeSinceFirst;
+
string t1, t2;
- if (t == 0) {
+ if (i.TimeSinceFirst == 0) {
t1 = t2 = String.Empty;
- prev_time = 0;
} else {
- t1 = t.ToString ("0.000000");
- t2 = (t - prev_time).ToString ("0.000000");
- prev_time = t;
+ t1 = i.TimeSinceFirst.ToString ("0.000000");
+ t2 = i.TimeSinceLast.ToString ("0.000000");
}
RenderAltRow (table, pos, open + (string) i.Category +
close,
Modified: trunk/mcs/class/System.Web/System.Web.UI/ChangeLog
===================================================================
--- trunk/mcs/class/System.Web/System.Web.UI/ChangeLog 2007-11-07 13:43:35 UTC
(rev 89101)
+++ trunk/mcs/class/System.Web/System.Web.UI/ChangeLog 2007-11-07 13:55:05 UTC
(rev 89102)
@@ -1,5 +1,9 @@
2007-11-07 Igor Zelmanovich <[EMAIL PROTECTED]>
+ * PageParser.cs: fixed initial value of tracemode.
+
+2007-11-07 Igor Zelmanovich <[EMAIL PROTECTED]>
+
* Control.cs: removes '#define MONO_TRACE'.
It allows to run MONO in release mode without supplementary trace info.
Modified: trunk/mcs/class/System.Web/System.Web.UI/PageParser.cs
===================================================================
--- trunk/mcs/class/System.Web/System.Web.UI/PageParser.cs 2007-11-07
13:43:35 UTC (rev 89101)
+++ trunk/mcs/class/System.Web/System.Web.UI/PageParser.cs 2007-11-07
13:55:05 UTC (rev 89102)
@@ -49,7 +49,7 @@
bool haveTrace;
bool trace;
bool notBuffer;
- TraceMode tracemode;
+ TraceMode tracemode = TraceMode.Default;
string responseEncoding;
string contentType;
int codepage = -1;
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches