<% Dim Today Dim iDefMon, iDefDay, iDefYear Dim i Dim strFileName Dim strResult iDefMon = Month (Now) iDefDay = Day (Now) iDefYear = Year (Now) If Request ("Month") <> "" Then iDefMon = CInt (Request ("Month")) End If If Request ("Day") <> "" Then iDefDay = CInt (Request ("Day")) End If If Request ("Year") <> "" Then iDefYear = CInt (Request ("Year")) End If strFileName = "ex" & Right (CStr (iDefYear), 2) & _ Right ("0" & CStr (iDefMon), 2) & _ Right ("0" & CStr (iDefDay), 2) & ".log" %> <html> <head> <title>Log File Summary for Everest Project</title> </head> <body text="#0000FF"> <h1><center><font face="Arial">Log File Summary for Everest Project</font></h1></center> <p><font face="Arial">This web page is designed to view the summary of the internet log files. Please select the date of the log file and click on the submit button.</font></p> <center> <form method="POST" action="iislog.asp"> <font face="Arial"> Month <select name="Month" size="1"> <% For i = 1 to 12 If i = iDefMon Then Response.Write ("<option selected>" & i & "</option>") Else Response.Write ("<option>" & i & "</option>") End If Next%> </select> Day <select name="Day" size="1"> <% For i = 1 to 31 If i = iDefDay Then Response.Write ("<option selected>" & i & "</option>") Else Response.Write ("<option>" & i & "</option>") End If Next%> </select> Year <select name="Year" size="1"> <% For i = iDefYear - 1 to iDefYear + 1 If i = iDefYear Then Response.Write ("<option selected>" & i & "</option>") Else Response.Write ("<option>" & i & "</option>") End If Next%> </select> <input type="submit" value="Submit" name="B1"> </font></p> </form> <Script Runat=server Language="Vbscript"> Function ProcessFile (strFileName) 'On Error Resume Next End Function Function GetOneTokenFromString(SrcString) Dim OneToken Dim Pos Pos = InStr(SrcString, " ") If (Pos > 0) Then OneToken = Left(SrcString, Pos - 1) SrcString = Mid(SrcString, Pos + 1) GetOneTokenFromString = OneToken Else GetOneTokenFromString = SrcString SrcString = "" End If End Function Sub ProcessFile(strFileName, TotalAspHits, TotalPPHits, TotalPPBytesRcved, AvgAspTime, AvgPPTime) On Error Resume Next Dim OneLine Dim OneToken Dim ByteRcved Dim ByteSent Dim TimeProcessed Dim AspTimeProcessed Dim RecvBytesIndex, TimeIndex, UrlIndex Dim I Dim bAsp Dim bPrinter Dim strDir Dim strLine Const strPrinter = "/.printer" Const strPrns = "/printers" Const strAsp = ".asp" Const strLog = "iislog.asp" strDir = Server.MapPath ("/iislogs/W3SVC1/" & strFileName) Set objFSO = CreateObject ("Scripting.FileSystemObject") Set objLogFile = objFSO.OpenTextFile (strDir) If Err Then Exit Sub End If TotalAspHits = 0 TotalPPHits = 0 ByteRcved = 0 ByteSent = 0 TimeProcessed = 0 AspTimeProcessed = 0 Do While Not objLogFile.AtEndOfStream OneLine = objLogFile.ReadLine If Left(OneLine, 1) = "#" Then If Left(OneLine, 8) = "#Fields:" Then OneToken = GetOneTokenFromString(OneLine) I = 0 Do While OneToken <> "" OneToken = GetOneTokenFromString(OneLine) Select Case OneToken Case "cs-uri-stem" UrlIndex = I Case "cs-bytes" RecvBytesIndex = I Case "time-taken" TimeIndex = I Case Else End Select I = I + 1 Loop End If Else I = 0 bAsp = False bPrinter = False Do While I = 0 Or OneToken <> "" OneToken = GetOneTokenFromString(OneLine) 'Response.Write ("<br>" & OneToken) If I = UrlIndex Then 'Process the URL If Right(OneToken, Len(strPrinter)) = strPrinter Then bPrinter = True TotalPPHits = TotalPPHits + 1 ElseIf Left(OneToken, Len(strPrns)) = strPrns And Right(OneToken, Len(strLog)) <> strLog Then 'And Right(OneToken, Len(strAsp)) = strAsp Then 'Response.Write ("<br>TotalAsp" ) bAsp = True TotalAspHits = TotalAspHits + 1 End If End If If bAsp Then If I = TimeIndex Then AspTimeProcessed = AspTimeProcessed + OneToken End If End If If bPrinter Then If I = RecvBytesIndex Then ByteRcved = ByteRcved + OneToken End If If I = TimeIndex Then TimeProcessed = TimeProcessed + OneToken End If End If I = I + 1 Loop End If Loop objLogFile.Close If TotalAspHits > 0 Then AvgAspTime = AspTimeProcessed / TotalAspHits End If If ByteRcved > 0 Then AvgPPTime = TimeProcessed / ByteRcved End If TotalPPBytesRcved = ByteRcved End Sub </script> <% 'strFileName = "ex980210.log" 'Response.Write ("File name is <b>" & strFileName &"</b><br>") On Error Resume Next Call ProcessFile (strFileName, TotalAspHits, TotalPPHits, TotalPPBytesRcved, AvgAspTime, AvgPPTime) If Err Then strResult = "<b>The requested log file does not exist.</b>" Else strEol = "<br>" strBgnCol = "<tr><td width = 300>" strMidCol = "</td><td>" strEndCol = "</td><tr>" strResult = "<h2>Server Name - " & Request.Servervariables ("SERVER_NAME") & "</h2>" strResult = strResult & "<table><th colspan=2><b>Summary of Everest ASP Pages</b></th>" strResult = strResult & strBgnCol &"Total Hits" & strMidCol &TotalAspHits & strEndCol strResult = strResult & strBgnCol &"Average Processing Time (Msec/Hit) " & strMidCol & formatnumber(AvgAspTime, 1)& strEndCol strResult = strResult & "</table>" strResult = strResult & "<br><br><table><th colspan=2><b>Summary of Everest ISAPI</b></th>" strResult = strResult & strBgnCol &"Total Hits (AddPrinter + Printing)" & strMidCol & TotalPPHits & strEndCol strResult = strResult & strBgnCol &"Total Bytes" & strMidCol &TotalPPBytesRcved & strEndCol strResult = strResult & strBgnCol &"Average Processing Time (Sec/Kb) " & strMidCol &formatnumber(AvgPPTime,1) & strEndCol strResult = strResult & "</table>" End If %> <% =strResult%> <hr> Send comment to <a href="mailto:weihac@microsoft.com">Weihai Chen</a> </center> </body> </html>