Aller au contenuAller à l'arborescence
  1. C:
  2. inetpub
  3. logs\LogFiles
DossierRisque : Prudence

logs\LogFiles C:\inetpub\logs\LogFiles

Emplacement par défaut des journaux d'accès IIS (un sous-dossier par site, fichiers .log datés) ; à purger ou archiver régulièrement.

Mis à jour le Par AltF4 Formation

À quoi ça sert

IIS y écrit ses journaux de requêtes : %SystemDrive%\inetpub\logs\LogFiles est le répertoire par défaut de la journalisation. Il apparaît dès qu’IIS est installé, sur Windows Server comme sur un poste client où la fonctionnalité est activée.

Ce qu’il contient

  • Un sous-dossier par site : W3SVC<identifiant du site> (par exemple W3SVC1) et FTPSVC<identifiant> pour les sites FTP.
  • Des fichiers .log au format W3C étendu (u_ex<aammjj>.log), découpés selon la période choisie : horaire, quotidienne, hebdomadaire ou mensuelle.
  • Pour chaque requête : date, heure, adresse du client, méthode, URI, code de statut, durée. Les horodatages du format W3C sont en UTC, d’où un décalage avec l’heure locale du serveur.
  • Pas les erreurs HTTP.sys (HTTPERR), qui sont dans C:\Windows\System32\LogFiles.

Risques et bonnes pratiques

  • IIS ne purge jamais ces journaux : sur un serveur chargé, le volume système finit par se remplir. Planifiez la suppression au-delà d’un âge donné (Microsoft en documente un script) en gardant la durée que votre politique de sécurité ou la réglementation exige.
  • Déplacez le répertoire vers un autre volume depuis IIS (site > Journalisation > Répertoire) plutôt que de remplacer le dossier.
  • Ne supprimez pas le fichier du jour : le service le tient ouvert.
  • Pour analyser de gros volumes, utilisez Log Parser ou un outil de supervision plutôt que le Bloc-notes.

Commandes utiles

Fenêtre de terminal
# Identifiants et noms des sites, donc le dossier W3SVC<id> correspondant
& "$env:windir\system32\inetsrv\appcmd.exe" list site
# Volume des journaux, par dossier de site
Get-ChildItem "$env:SystemDrive\inetpub\logs\LogFiles" -Directory | ForEach-Object {
[pscustomobject]@{ Site = $_.Name; Mo = [math]::Round((Get-ChildItem $_.FullName -Recurse -File | Measure-Object Length -Sum).Sum / 1MB, 1) } }
# Dernières lignes du journal d'un site
Get-ChildItem "$env:SystemDrive\inetpub\logs\LogFiles\W3SVC1" -Filter *.log |
Sort-Object LastWriteTime | Select-Object -Last 1 | Get-Content -Tail 20
# Suppression des journaux de plus de 30 jours (en administrateur ; retirer -WhatIf pour exécuter)
Get-ChildItem "$env:SystemDrive\inetpub\logs\LogFiles" -Recurse -Filter *.log |
Where-Object LastWriteTime -lt (Get-Date).AddDays(-30) | Remove-Item -WhatIf

Contenu du dossier

Signaler une erreur