Le composant IISLog permet d'administrer ou d'explorer un fichier journal généré par le serveur Internet Information Server (IIS).

La déclaration ci-dessous, permet de créer une instance du composant IISLog sous VBScript.

Set objet = Server.CreateObject("MSWC.IISLog")

Sous JScript, il suffit de remplacer l'instruction Set par var si l'objet n'a pas été préalablement déclaré, sinon supprimer la simplement.

L'inclusion d'une directive METADATA dans l'entête du document ASP, est impérative en raison de l'utilisation des constantes ForReading, ForWriting et AllOpenFiles, servant de paramètres d'ouverture d'un fichier journal avec l'instruction OpenLogFiles.

<!-- METADATA type="typelib"
                         FILE="C:\WINNT\system32\inetsrv\logscrpt.dll" -->

Le composant IISLog dépend de la librairie logscrpt.dll, c'est pourquoi la directive d'u=inclusion pointe vers ce fichier.

L'utilisation du composant IISLog dans une document Web nécessite de désactiver l'Accès anonyme dans les paramètres de sécurité concernant la page.

Propriétés du répertoire ou du fichier >> Sécurité du répertoire >> Modifier Accès anonyme et contrôle d'authentification >> Décocher l'option Accès anonyme

Le fichier journal par défaut de Internet Information Server (IIS) est localisé dans le répertoire suivant :

C:\WINNT\system32\LogFiles\W3SVC1\

Le fichier Log énumère l'ensemble des accès effectués sur le serveur courant.

Les Propriétés
Méthode
Description
BytesReceived
indique les octets reçus.
BytesSent
indique les octet envoyés.
ClientIP
indique le nom d'hôte du client.
Cookie
indique le cookie du client.
CustomFields
indique un tableau d'entêtes personnalisés.
DateTime
indique la date et l'heure en GMT.
Method
indique le type d'opération.
ProtocolStatus
indique le statut du protocole.
ProtocolVersion
indique la version par une chaine de caractères.
Referer
indique l'URL de la page contenant le lien ayant initialisé la requête.
ServerIP
indique l'adresse IP du serveur.
ServerName
indique le nom du serveur.
ServerPort
indique le numéro de port.
ServiceName
indique le nom du service.
TimeTaken
indique le temps système total de traîtement.
URIQuery
indique tous les paramètres passés avec la requête.
URIStem
indique l'URL cible.
UserAgent
indique l'agent utilisateur (navigateur).
UserName
indique le nom d'utilisateur.
Win32Status
indique le code du statut Win32.
Les Méthodes
Propriété
Description
AtEndOfLog()
indique si tous les enregistrements ont été lus à partir du fichier log.
CloseLogFiles(ForReading(0) | ForWriting(1) | AllOpenFiles(32))
ferme tous les fichiers log ouverts.
OpenLogFile(nom_fichier, mode_E/S,
nom_service, instance_service, format_sortie)
ouvre un fichier log en lecture et écriture.
ReadFilter(nb_début, nb_fin)
filtre les enregistrements du fichier log par date et temps.
ReadLogRecord()
lit le prochain enregistrement disponible du fichier lo courant.
WriteLogRecord(objet_journal)
écrit un enregistrement dans le fichier log courant.
Exemple [voir]
<!-- METADATA type="typelib" FILE="C:\WINNT\system32\inetsrv\logscrpt.dll" -->
<html>
  <body>
    <%
      Dim objJournal
      Set objJournal = Server.CreateObject("MSWC.IISLog")
      objJournal.OpenLogFile _
                  "C:\WINNT\system32\LogFiles\W3SVC1\extend1.log", _
                               ForReading, "W3SVC", 1, 0
      objJournal.ReadFilter DateAdd("d", -1, Now), Now
    %>
    <table cellpadding="10">
      <tr>
        <th>Date/Heure</th>
        <th>Adresse IP</th>
        <th>Nom d'utilisateur</th>
        <th>Agent utilisateur</th>
        <th>Page demandée</th>
      </tr>
      <%
        Do While Not objJournal.AtEndOfLog
        objJournal.ReadLogRecord
      %>
      <tr>
        <td><% = objJournal.DateTime %></td>
        <td><% = objJournal.ClientIP %></td>
        <td><% = objJournal.UserName %></td>
        <td><% = objJournal.UserAgent %></td>
        <td><% = objJournal.URIStem %></td>
      </tr>
      <%
        Loop
        objJournal.CloseLogFiles(ForReading)
      %>
    </table>
  </body>
</html>