Журналы доступа к веб-сайтам (access_log)
- Где размещаются журналы доступа
- Настройка ротации журналов доступа
- Скрипт для просмотра журналов доступа
Протокол доступа (access_log)
Протоколы доступа будут помещаться в каталог log/w3svc#### (где #### — номер вашего Web-сайта по внутренней классификации IIS) в папке с названием вашего домена. Если ваш домен называется domain.tld, то протоколы вы найдете в папке domain.tld/log/w3svc####.
Лог-файлы наполняются в реальном времени и имеют названия вида u_exГГММДД.log (где ГГ — год, ММ — месяц, ДД — день создания лог-файла). По умолчанию лог-файлы старше 7-ми дней удаляются автоматически, и вы не можете удалить их самостоятельно.
Настройка ротации журналов доступа
Для экономии места на виртуальной площадке можно изменить время ротации журналов доступа, клиентам виртуального Windows-хостинга дана соответствующая возможность в личном кабинете. Изменить время хранения журналов (ротацию) можно в Древе услуг, для чего выберите необходимый домен и измените характеристику «параметры домена», задав нужное количество суток в пункте «Срок хранения логов».
Скрипт для просмотра журналов доступа
Вы можете смотреть текущий протокол доступа к домену разместив на площадке два *.ASP файла с содержанием:
ReadLogs.ASP
<html>
<title>List Log files</title>
<body>
<%
Set oFileSystem = Server.CreateObject("Scripting.FileSystemObject")
Set oFolder = oFileSystem.GetFolder(Server.MapPath("/";)
& "\..\Log\w3svc" & Request.ServerVariables("INSTANCE_ID"))
Response.Write "Log folder = """ & oFolder.Path & "<br><br>"
for each oFile in oFolder.Files
Response.Write "<a href=""read.asp?file=" & oFile.Name &
""">" & oFile.Name & "</a>"
next
%>
</body>
</html>
Read.ASP
<html>
<Title>LogFile</title>
<body>
<%
Const ForReading = 1
Const ForWriting = 2
Set oFileSystem =
Server.CreateObject("Scripting.FileSystemObject")
sFileName = Server.MapPath("/") & "\..\Log\w3svc" &
Request.ServerVariables("INSTANCE_ID")
& "\" & Request.QueryString("file")
Response.Write "<H1>" &
oFileSystem.GetBaseName(sFileName) & "</H1><br><br>"
Set oFile = oFileSystem.OpenTextFile( sFileName ,
ForReading )
bTableOpen = False
While Not oFile.AtEndOfStream
sLine = oFile.ReadLine
if NOT Left(sLine,1) = "#" Then
if bTableOpen then
Response.Write "<tr>"
for each sField in Split(sLine)
if sField = "-" Then
Response.Write "<td nowrap></td>"
else
Response.Write "<td nowrap>" & sField & "</td>"
end if
next
Response.Write "</tr>"
else
Response.Write sLine & "<br>"
end if
elseif Left(sLine, 8 ) = "#Fields:" then
if bTableOpen then Response.Write "</table>"
Response.Write "<table cellpadding=""0""
cellspacing=""0"" border=""1"" width=""100%""><tr>"
for i = 1 to UBound(Split(sLine))-1
Response.Write "<td bgcolor=""silver"" nowrap>"
& Split(sLine)(i) & "</td>"
next
Response.Write "</tr>"
bTableOpen = True
End if
Wend
oFile.Close
%>
</body>
</html>