HTTP 로깅 <httpLogging>

개요

요소를 <httpLogging> 사용하면 성공적인 요청, 실패한 요청 또는 둘 다에 대해서만 로그 항목을 생성하도록 IIS를 구성할 수 있습니다. 서버 수준에서 각 웹 사이트에 대한 로깅을 구성한 후 이 요소를 사용하여 개별 URL에 대해 선택적 로깅을 사용하도록 설정할 수 있습니다. 기본적으로 HTTP 로깅은 IIS(인터넷 정보 서비스) 7의 모든 요청에 대해 사용하도록 설정됩니다.

언제든지 사이트의 로그 파일을 보고 실패한 요청과 성공한 요청을 확인할 수 있습니다. IIS가 사이트에 대한 특정 요청을 더 이상 기록하지 않으려면 해당 사이트에 대한 로깅을 사용하지 않도록 설정합니다.

호환성

버전 참고
IIS 10.0 <httpLogging> 요소가 IIS 10.0에서 수정되지 않았습니다.
IIS 8.5 <httpLogging> 요소가 IIS 8.5에서 수정되지 않았습니다.
IIS 8.0 <httpLogging> 요소가 IIS 8.0에서 수정되지 않았습니다.
IIS 7.5 <httpLogging> 요소가 IIS 7.5에서 수정되지 않았습니다.
IIS 7.0 요소는 <httpLogging> IIS 7.0에서 도입되었습니다.
IIS 6.0 <httpLogging> 요소와 <logFile> 요소는 IIS 6.0 IIsWebService 메타베이스 개체의 로깅 속성을 대체합니다.

설치 프로그램

요소는 <httpLogging> IIS 7의 기본 설치에 포함됩니다.

방법

사이트 또는 애플리케이션에 HTTP 로깅을 사용하도록 설정하는 방법

  1. IIS(인터넷 정보 서비스) 관리자를 엽니다.

    • Windows Server 2012 사용하거나 R2를 Windows Server 2012 경우:

      • 작업 표시줄에서 서버 관리자 클릭하고 도구를 클릭한 다음 IIS(인터넷 정보 서비스) 관리자를 클릭합니다.
    • Windows 8 사용하거나 Windows 8.1 경우:

      • Windows 키를 누른 채로 문자 X를 누른 다음 제어판 클릭합니다.
      • 관리 도구를 클릭한 다음 IIS(인터넷 정보 서비스) 관리자를 두 번 클릭합니다.
    • Windows Server 2008 또는 Windows Server 2008 R2를 사용하는 경우:

      • 작업 표시줄에서 시작을 클릭하고 관리 도구를 가리킨 다음 IIS(인터넷 정보 서비스) 관리자를 클릭합니다.
    • Windows Vista 또는 Windows 7을 사용하는 경우:

      • 작업 표시줄에서 시작을 클릭한 다음 제어판 클릭합니다.
      • 관리 도구를 두 번 클릭한 다음 IIS(인터넷 정보 서비스) 관리자를 두 번 클릭합니다.
  2. 연결 창에서 서버 이름을 확장하고 사이트를 확장한 다음 HTTP 로깅을 구성할 웹 사이트 또는 애플리케이션으로 이동합니다.

  3. 창에서 로깅을 두 번 클릭합니다.

  4. 작업 창에서 사용을 클릭하여 로깅을 사용하도록 설정합니다.
    로깅 창의 스크린샷 텍스트 I S 로그 요청 서버가 표시되는 방법을 구성하려면 이 기능을 사용합니다.

  5. 서식 드롭다운 목록에서 사이트 또는 애플리케이션에 사용할 로그 파일 형식을 선택하고 IIS에서 로그 파일을 저장하는 기본 위치를 변경하려면 사이트 또는 애플리케이션의 로그 파일을 디렉터리 상자에 저장할 경로를 입력합니다.

  6. (선택 사항) 5단계의 형식 드롭다운 목록에서 W3C를 선택한 경우 필드 선택을 클릭합니다.

  7. (선택 사항) W3C 로깅 필드 대화 상자에서 기록하려는 W3C 필드를 선택하고, 기록하지 않을 W3C 필드를 지운 다음 확인을 클릭합니다.
    W 3C 로깅 필드 대화 상자의 스크린샷 날짜, 시간, 클라이언트 IP 주소, 사용자 이름, 서비스 이름 및 서버 I P 주소에 대한 확인란이 선택되어 있습니다. 서비스 이름이 강조 표시됩니다.

  8. 작업 창에서 적용을 클릭합니다.
    작업 창의 스크린샷 하나의 로그 파일 상자가 표시됩니다.

구성

ApplicationHost.config 파일의 서버 수준과 적절한 Web.config 파일의 사이트, 애플리케이션 또는 URL 수준에서 요소를 구성할 <httpLogging> 수 있습니다.

특성

attribute Description
dontLog 선택적 부울 특성입니다.

성공적인 요청에 대해 HTTP 로깅을 사용할 수 있는지 여부를 지정합니다. 상태 코드가 400보다 작은 경우 요청이 성공한 것으로 간주됩니다.

기본값은 false입니다.
selectiveLogging 선택적 열거형 특성입니다.

기록할 요청 유형을 지정합니다.

selectiveLogging 특성은 다음과 같은 가능한 값 중 하나일 수 있습니다.

기본값은 LogAll입니다.
Description
LogAll 모든 요청을 기록합니다.

숫자 값은 입니다 0.
LogSuccessful 성공한 요청만 기록합니다. 성공적인 요청에 대한 HTTP 상태 코드 범위는 100-399입니다.

숫자 값은 입니다 1.
LogError 실패한 요청만 기록합니다. 실패한 요청에 대한 HTTP 상태 코드 범위는 400-999입니다.

숫자 값은 입니다 2.

자식 요소

없음

구성 샘플

다음 구성 예제는 사이트 또는 애플리케이션에 대한 Web.config 파일에 포함된 경우 HTTP 로깅을 구성하고 IIS에서 오류를 생성하는 요청만 기록해야 한다고 지정합니다.

<configuration>
   <system.webServer>
      <httpLogging dontLog="false" selectiveLogging="LogError" />
   </system.webServer>
<configuration>

샘플 코드

다음 예제에서는 Contoso라는 웹 사이트에 HTTP 로깅을 사용하도록 설정하고 IIS에서 요청을 기록하지 않도록 지정합니다.

AppCmd.exe

appcmd.exe set config "Contoso" -section:system.webServer/httpLogging /dontLog:"True" /commit:apphost

appcmd.exe set config "Contoso" -section:system.webServer/httpLogging /selectiveLogging:"LogAll" /commit:apphost

참고

AppCmd.exe 사용하여 이러한 설정을 구성할 때 커밋 매개 변수 apphost 를 로 설정해야 합니다. 그러면 구성 설정이 ApplicationHost.config 파일의 적절한 위치 섹션에 커밋됩니다.

C#

using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample
{
   private static void Main()
   {
      using (ServerManager serverManager = new ServerManager())
      {
         Configuration config = serverManager.GetApplicationHostConfiguration();
         ConfigurationSection httpLoggingSection = config.GetSection("system.webServer/httpLogging", "Contoso");
         httpLoggingSection["selectiveLogging"] = @"LogAll";
         httpLoggingSection["dontLog"] = true;
         serverManager.CommitChanges();
      }
   }
}

VB.NET

Imports System
Imports System.Text
Imports Microsoft.Web.Administration

Module Sample
   Sub Main()
      Dim serverManager As ServerManager = New ServerManager
      Dim config As Configuration = serverManager.GetApplicationHostConfiguration
      Dim httpLoggingSection As ConfigurationSection = config.GetSection("system.webServer/httpLogging", "Contoso")
      httpLoggingSection("selectiveLogging") = "LogAll"
      httpLoggingSection("dontLog") = True
      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";

var httpLoggingSection = adminManager.GetAdminSection("system.webServer/httpLogging", "MACHINE/WEBROOT/APPHOST/Contoso");
httpLoggingSection.Properties.Item("selectiveLogging").Value = "LogAll";
httpLoggingSection.Properties.Item("dontLog").Value = true;

adminManager.CommitChanges();

VBScript

Set adminManager = createObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"

Set httpLoggingSection = adminManager.GetAdminSection("system.webServer/httpLogging", "MACHINE/WEBROOT/APPHOST/Contoso")
httpLoggingSection.Properties.Item("selectiveLogging").Value = "LogAll"
httpLoggingSection.Properties.Item("dontLog").Value = True

adminManager.CommitChanges()