aspdebug类

< ! -- #INCLUDE FILE = " debuggingConsole.asp " -->

< %

output
= " XXXX "

Set  debugstr  =   New  debuggingConsole

debugstr.Enabled 
=   true

debugstr.Print 
" 参数output的值 " , output

' ……

debugstr.draw

Set  debugstr  =   Nothing

%
>

===================================================

debuggingConsole.asp

< %

Class debuggingConsole

private  dbg_Enabled

private  dbg_Show

private  dbg_RequestTime

private  dbg_FinishTime

private  dbg_Data

private  dbg_DB_Data

private  dbg_AllVars

private  dbg_Show_default

private  DivSets( 2 )

' Construktor => set the default values

Private   Sub  Class_Initialize()

dbg_RequestTime 
=   Now ()

dbg_AllVars 
=   false

Set  dbg_Data  =  Server.CreateObject( " Scripting.Dictionary " )

DivSets(
0 =   " <TR><TD style='cursor:hand;' οnclick=""javascript:if (document.getElementById('data#sectname#').style.display=='none'){document.getElementById('data#sectname#').style.display='block';}else{document.getElementById('data#sectname#').style.display='none';}""><DIV id=sect#sectname# style=""font-weight:bold;cursor:hand;background:#7EA5D7;color:white;padding-left:4;padding-right:4;padding-bottom:2;"">|#title#|<DIV id=data#sectname# style=""cursor:text;display:none;background:#FFFFFF;padding-left:8;"" οnclick=""window.event.cancelBubble = true;"">|#data#|</DIV>|</DIV>| "

DivSets(
1 =   " <TR><TD><DIV id=sect#sectname# style=""font-weight:bold;cursor:hand;background:#7EA5D7;color:white;padding-left:4;padding-right:4;padding-bottom:2;"" οnclick=""javascript:if (document.getElementById('data#sectname#').style.display=='none'){document.getElementById('data#sectname#').style.display='block';}else{document.getElementById('data#sectname#').style.display='none';}"">|#title#|<DIV id=data#sectname# style=""cursor:text;display:block;background:#FFFFFF;padding-left:8;"" οnclick=""window.event.cancelBubble = true;"">|#data#|</DIV>|</DIV>| "

DivSets(
2 =   " <TR><TD><DIV id=sect#sectname# style=""background:#7EA5D7;color:lightsteelblue;padding-left:4;padding-right:4;padding-bottom:2;"">|#title#|<DIV id=data#sectname# style=""display:none;background:lightsteelblue;padding-left:8"">|#data#|</DIV>|</DIV>| "

dbg_Show_default 
=   " 0,0,0,0,0,0,0,0,0,0,0 "

End Sub

Public   Property   Let  Enabled(bNewValue)  ' [bool] Sets "enabled" to true or false

dbg_Enabled 
=  bNewValue

End Property

Public   Property   Get  Enabled  ' [bool] Gets the "enabled" value

Enabled 
=  dbg_Enabled

End Property

Public   Property   Let  Show(bNewValue)  ' [string] Sets the debugging panel. Where each digit in the string represents a debug information pane in order (11 of them). 1=open, 0=closed

dbg_Show 
=  bNewValue

End Property

Public   Property   Get  Show  ' [string] Gets the debugging panel.

Show 
=  dbg_Show

End Property

Public   Property   Let  AllVars(bNewValue)  ' [bool] Sets wheather all variables will be displayed or not. true/false

dbg_AllVars 
=  bNewValue

End Property

Public   Property   Get  AllVars  ' [bool] Gets if all variables will be displayed.

AllVars 
=  dbg_AllVars

End Property

' ***********************************************************

' @SDESCRIPTION: Adds a variable to the debug-informations.

' @PARAM: - label [string]: Description of the variable

' @PARAM: - output [variable]: The variable itself

' ***********************************************************

Public   Sub  Print(label, output)

If  dbg_Enabled  Then

if  err.number  >   0   then

call  dbg_Data.Add(ValidLabel(label),  " !!! Error:  "   &  err.number  &   "   "   & err.Description)

err.Clear

else

uniqueID 
=  ValidLabel(label)

response.write uniqueID

call  dbg_Data.Add(uniqueID, output)

end   if

End   If

End Sub

' ***********************************************************

' * ValidLabel

' ***********************************************************

Private   Function  ValidLabel(byval label)

dim  i, lbl

=   0

lbl 
=  label

do

if   not  dbg_Data.Exists(lbl)  then   exit   do

=  i  +   1

lbl 
=  label  &   " ( "   &  i  &   " ) "

loop  until i  =  i

ValidLabel 
=  lbl

End Function

' ***********************************************************

' * PrintCookiesInfo

' ***********************************************************

Private   Sub  PrintCookiesInfo(byval DivSetNo)

dim  tbl, cookie, key, tmp

For   Each  cookie in Request.Cookies

If   Not  Request.Cookies(cookie).HasKeys  Then

tbl 
=  AddRow(tbl, cookie, Request.Cookies(cookie))

Else

For   Each  key in Request.Cookies(cookie)

tbl 
=  AddRow(tbl, cookie  &   " ( "   &  key  &   " ) " , Request.Cookies(cookie)(key))

Next

End   If

Next

tbl 
=  MakeTable(tbl)

if  Request.Cookies.count  <=   0   then  DivSetNo  =   2

tmp 
=   replace ( replace ( replace (DivSets(DivSetNo), " #sectname# " , " COOKIES " ), " #title# " , " COOKIES " ), " #data# " ,tbl)

Response.Write 
replace (tmp, " | " , vbcrlf)

end sub

' ***********************************************************

' * PrintSummaryInfo

' ***********************************************************

Private   Sub  PrintSummaryInfo(byval DivSetNo)

dim  tmp, tbl

tbl 
=  AddRow(tbl,  " Time of Request " ,dbg_RequestTime)

tbl 
=  AddRow(tbl,  " Elapsed Time " , DateDiff ( " s " , dbg_RequestTime, dbg_FinishTime)  &   "  seconds " )

tbl 
=  AddRow(tbl,  " Request Type " ,Request.ServerVariables( " REQUEST_METHOD " ))

tbl 
=  AddRow(tbl,  " Status Code " ,Response.Status)

tbl 
=  AddRow(tbl,  " Script Engine " , ScriptEngine   &   "   "   &   ScriptEngineMajorVersion   &   " . "   &   ScriptEngineMinorVersion   &   " . "   &   ScriptEngineBuildVersion )

tbl 
=  MakeTable(tbl)

tmp 
=   replace ( replace ( replace (DivSets(DivSetNo), " #sectname# " , " SUMMARY " ), " #title# " , " SUMMARY INFO " ), " #data# " ,tbl)

Response.Write 
replace (tmp, " | " , vbcrlf)

End Sub

' ***********************************************************

' @SDESCRIPTION: Adds the Database-connection object to the debug-instance. To display Database-information

' @PARAM: - oSQLDB [object]: connection-object

' ***********************************************************

Public   Sub  GrabDatabaseInfo(byval oSQLDB)

dbg_DB_Data 
=  AddRow(dbg_DB_Data,  " ADO Ver " ,oSQLDB.Version)

dbg_DB_Data 
=  AddRow(dbg_DB_Data,  " OLEDB Ver " ,oSQLDB.Properties( " OLE DB Version " ))

dbg_DB_Data 
=  AddRow(dbg_DB_Data,  " DBMS " ,oSQLDB.Properties( " DBMS Name " &   "  Ver:  "   &  oSQLDB.Properties( " DBMS Version " ))

dbg_DB_Data 
=  AddRow(dbg_DB_Data,  " Provider " ,oSQLDB.Properties( " Provider Name " &   "  Ver:  "   &  oSQLDB.Properties( " Provider Version " ))

End Sub

' ***********************************************************

' * PrintDatabaseInfo

' ***********************************************************

Private   Sub  PrintDatabaseInfo(byval DivSetNo)

dim  tbl

tbl 
=  MakeTable(dbg_DB_Data)

tbl 
=   replace ( replace ( replace (DivSets(DivSetNo), " #sectname# " , " DATABASE " ), " #title# " , " DATABASE INFO " ), " #data# " ,tbl)

Response.Write 
replace (tbl, " | " , vbcrlf)

End Sub

' ***********************************************************

' * PrintCollection

' ***********************************************************

Private   Sub  PrintCollection(Byval Name, ByVal Collection, ByVal DivSetNo, ByVal ExtraInfo)

Dim  vItem, tbl, Temp

For   Each  vItem In Collection

if   isobject (Collection(vItem))  and  Name  <>   " SERVER VARIABLES "   and  Name  <>   " QUERYSTRING "   and  Name  <>   " FORM "   then

tbl 
=  AddRow(tbl, vItem,  " {object} " )

elseif   isnull (Collection(vItem))  then

tbl 
=  AddRow(tbl, vItem,  " {null} " )

elseif   isarray (Collection(vItem))  then

tbl 
=  AddRow(tbl, vItem,  " {array} " )

else

if  dbg_AllVars  then

tbl 
=  AddRow(tbl,  " <nobr> "   &  vItem  &   " </nobr> " , server.HTMLEncode(Collection(vItem)))

elseif  (Name  =   " SERVER VARIABLES "   and  vItem  <>   " ALL_HTTP "   and  vItem  <>   " ALL_RAW " or  Name  <>   " SERVER VARIABLES "   then

if  Collection(vItem)  <>   ""   then

tbl 
=  AddRow(tbl, vItem, server.HTMLEncode(Collection(vItem)))  '  & " {" & TypeName(Collection(vItem)) & "}")

else

tbl 
=  AddRow(tbl, vItem,  " ... " )

end   if

end   if

end   if

Next

if  ExtraInfo  <>   ""   then  tbl  =  tbl  &   " <TR><TD COLSPAN=2><HR></TR> "   &  ExtraInfo

tbl 
=  MakeTable(tbl)

if  Collection.count  <=   0   then  DivSetNo  = 2

tbl 
=   replace ( replace (DivSets(DivSetNo), " #title# " ,Name), " #data# " ,tbl)

tbl 
=   replace (tbl, " #sectname# " , replace (Name, "   " , "" ))

Response.Write 
replace (tbl, " | " , vbcrlf)

End Sub

' ***********************************************************

' * AddRow

' ***********************************************************

Private   Function  AddRow(byval t, byval var, byval val)

=  t  &   " |<TR valign=top>|<TD>| "   &  var  &   " |<TD>=  "   &  val  &   " |</TR> "

AddRow 
=  t

End Function

' ***********************************************************

' * MakeTable

' ***********************************************************

Private   Function  MakeTable(byval tdata)

tdata 
=   " |<table border=0 style=""font-size:10pt;font-weight:normal;""> "   +  tdata  +   " </Table>| "

MakeTable 
=  tdata

End Function

' ***********************************************************

' @SDESCRIPTION: Draws the Debug-panel

' ***********************************************************

Public   Sub  draw()

If  dbg_Enabled  Then

dbg_FinishTime 
=   Now ()

Dim  DivSet, x

DivSet 
=   split (dbg_Show_default, " , " )

dbg_Show 
=   split (dbg_Show, " , " )

For  x  =   0   to   ubound (dbg_Show)

divSet(x) 
=  dbg_Show(x)

Next

Response.Write 
" <BR><Table width=100% cellspacing=0 border=0 style=""font-family:arial;font-size:9pt;font-weight:normal;""><TR><TD><DIV style=""background:#005A9E;color:white;padding:4;font-size:12pt;font-weight:bold;"">Debugging-console:</DIV> "

Call  PrintSummaryInfo(divSet( 0 ))

Call  PrintCollection( " VARIABLES " , dbg_Data,divSet( 1 ), "" )

Call  PrintCollection( " QUERYSTRING " , Request.QueryString(), divSet( 2 ), "" )

Call  PrintCollection( " FORM " , Request.Form(),divSet( 3 ), "" )

Call  PrintCookiesInfo(divSet( 4 ))

Call  PrintCollection( " SESSION " , Session.Contents(),divSet( 5 ),AddRow(AddRow(AddRow( "" , " Locale ID " ,Session.LCID  &   "  (&H "   &   Hex (Session.LCID)  &   " ) " ), " Code Page " ,Session.CodePage), " Session ID " ,Session.SessionID))

Call  PrintCollection( " APPLICATION " , Application.Contents(),divSet( 6 ), "" )

Call  PrintCollection( " SERVER VARIABLES " , Request.ServerVariables(),divSet( 7 ),AddRow( "" , " Timeout " ,Server.ScriptTimeout))

Call  PrintDatabaseInfo(divSet( 8 ))

Call  PrintCollection( " SESSION STATIC OBJECTS " , Session.StaticObjects(),divSet( 9 ), "" )

Call  PrintCollection( " APPLICATION STATIC OBJECTS " , Application.StaticObjects(),divSet( 10 ), "" )

Response.Write 
" </Table> "

End   If

End Sub

' Destructor

Private   Sub  Class_Terminate()

Set  dbg_Data  =   Nothing

End Sub

End  Class

%
>

 
<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值