基于web服务器日志的访问流量统计
下面是用asp编写的基于apache服务器访问日志的访问流量统计程序
<%
'totalVisit变量存储总访问量,二维数组Statistic用户保存一年12个月每一天的访问量
dim Statistic(11,30)
dim totalVisit
for i=0 to 11
for j=0 to 30
Statistic(i,j)=0
next
next
totalVisit=0
'打开日志文件
set fso=server.createObject("scripting.fileSystemObject")
set logFile=fso.openTextFile("c:\Apache2\logs\access.log")
'读取所有记录,并统计每一天的访问量
do while not logFile.atEndOfLine
totalVisit=totalVisit+1
record=logFile.readLine
startPos=instr(record,"/")
timeStr=mid(record,startPos+1,3)
dayStr=Cint(mid(record,startPos-2,2))
for k=0 to 30
if (k+1)=dayStr then
select case timeStr
case "Jan" Statistic(0,k)=Statistic(0,k)+1
case "Feb" Statistic(1,k)=Statistic(1,k)+1
case "Mar" Statistic(2,k)=Statistic(2,k)+1
case "Apr" Statistic(3,k)=Statistic(3,k)+1
case "May" Statistic(4,k)=Statistic(4,k)+1
case "Jun" Statistic(5,k)=Statistic(5,k)+1
case "Jul" Statistic(6,k)=Statistic(6,k)+1
case "Aug" Statistic(7,k)=Statistic(7,k)+1
case "Sep" Statistic(8,k)=Statistic(8,k)+1
case "Oct" Statistic(9,k)=Statistic(9,k)+1
case "Nov" Statistic(10,k)=Statistic(10,k)+1
case "Dec" Statistic(11,k)=Statistic(11,k)+1
end select
end if
next
loop
'输出统计信息
response.write("<center>Apache Web服务器日志分析<p>")
response.write("2003年总流量:"&totalVisit&"<br>")
response.write("<table border=1 cellspacing=0 cellpadding=0 style='font-size:10pt'>")
response.write("<tr>")
response.write("<td> </td>")
for n=1 to 31
response.write("<td align=center>"&n&"日</td>")
next
response.write("<td>月流量</td>")
response.write("<tr>")
for i=0 to 11
sum=0
response.write("<tr height=26>")
response.write("<td align=center>"&i+1&"月</td>")
for j=0 to 30
response.write("<td align=center>"&Statistic(i,j)&"</td>")
sum=sum+Statistic(i,j)
next
response.write("<td>"&sum&"</td>")
next
%>
下面是用asp编写的基于apache服务器访问日志的访问流量统计程序CH09_logAnalyzer.asp,
<%
'totalVisit变量存储总访问量,二维数组Statistic用户保存一年12个月每一天的访问量
dim Statistic(11,30)
dim totalVisit
for i=0 to 11
for j=0 to 30
Statistic(i,j)=0
next
next
totalVisit=0
'打开日志文件
set fso=server.createObject("scripting.fileSystemObject")
set logFile=fso.openTextFile("c:\Apache2\logs\access.log")
'读取所有记录,并统计每一天的访问量
do while not logFile.atEndOfLine
totalVisit=totalVisit+1
record=logFile.readLine
startPos=instr(record,"/")
timeStr=mid(record,startPos+1,3)
dayStr=Cint(mid(record,startPos-2,2))
for k=0 to 30
if (k+1)=dayStr then
select case timeStr
case "Jan" Statistic(0,k)=Statistic(0,k)+1
case "Feb" Statistic(1,k)=Statistic(1,k)+1
case "Mar" Statistic(2,k)=Statistic(2,k)+1
case "Apr" Statistic(3,k)=Statistic(3,k)+1
case "May" Statistic(4,k)=Statistic(4,k)+1
case "Jun" Statistic(5,k)=Statistic(5,k)+1
case "Jul" Statistic(6,k)=Statistic(6,k)+1
case "Aug" Statistic(7,k)=Statistic(7,k)+1
case "Sep" Statistic(8,k)=Statistic(8,k)+1
case "Oct" Statistic(9,k)=Statistic(9,k)+1
case "Nov" Statistic(10,k)=Statistic(10,k)+1
case "Dec" Statistic(11,k)=Statistic(11,k)+1
end select
end if
next
loop
'输出统计信息
response.write("<center>Apache Web服务器日志分析<p>")
response.write("2003年总流量:"&totalVisit&"<br>")
response.write("<table border=1 cellspacing=0 cellpadding=0 style='font-size:10pt'>")
response.write("<tr>")
response.write("<td> </td>")
for n=1 to 31
response.write("<td align=center>"&n&"日</td>")
next
response.write("<td>月流量</td>")
response.write("<tr>")
for i=0 to 11
sum=0
response.write("<tr height=26>")
response.write("<td align=center>"&i+1&"月</td>")
for j=0 to 30
response.write("<td align=center>"&Statistic(i,j)&"</td>")
sum=sum+Statistic(i,j)
next
response.write("<td>"&sum&"</td>")
next
%>
请问如何设置apache 服务器的环境,如何调试才可以出现正确的结果,谢谢!