HTTP_LOGGING_INFO 구조체(http.h)

HTTP_LOGGING_INFO 구조는 URL 그룹 또는 서버 세션에서 서버 쪽 로깅을 사용하도록 설정하는 데 사용됩니다.

이 구조체는 URL 그룹 또는 서버 세션에서 HttpServerLoggingProperty 를 설정하거나 쿼리할 때 사용해야 합니다.

구문

typedef struct _HTTP_LOGGING_INFO {
  HTTP_PROPERTY_FLAGS        Flags;
  ULONG                      LoggingFlags;
  PCWSTR                     SoftwareName;
  USHORT                     SoftwareNameLength;
  USHORT                     DirectoryNameLength;
  PCWSTR                     DirectoryName;
  HTTP_LOGGING_TYPE          Format;
  ULONG                      Fields;
  PVOID                      pExtFields;
  USHORT                     NumOfExtFields;
  USHORT                     MaxRecordSize;
  HTTP_LOGGING_ROLLOVER_TYPE RolloverType;
  ULONG                      RolloverSize;
  PSECURITY_DESCRIPTOR       pSecurityDescriptor;
} HTTP_LOGGING_INFO, *PHTTP_LOGGING_INFO;

멤버

Flags

속성이 있는지 여부를 지정하는 HTTP_PROPERTY_FLAGS 구조체입니다.

LoggingFlags

선택적 로깅 플래그는 기본 로깅 동작을 변경합니다.

다음 HTTP_LOGGING_FLAG 값 중 하나 이상이 될 수 있습니다.

의미
HTTP_LOGGING_FLAG_LOCAL_TIME_ROLLOVER
로그 파일 롤오버 시간을 현지 시간으로 변경합니다. 기본적으로 로그 파일 롤오버는 GMT를 기반으로 합니다.
HTTP_LOGGING_FLAG_USE_UTF8_CONVERSION
기본적으로 유니코드 로깅 필드는 시스템 로컬 코드 페이지를 사용하여 멀티바이트로 변환됩니다. 이 플래그가 설정되면 UTF8 변환이 대신 사용됩니다.
HTTP_LOGGING_FLAG_LOG_ERRORS_ONLY
로그 오류만 플래그를 사용하면 로깅 오류만 사용할 수 있습니다. 기본적으로 오류 및 성공 요청은 모두 기록됩니다.

HTTP_LOGGING_FLAG_LOG_ERRORS_ONLYHTTP_LOGGING_FLAG_LOG_SUCCESS_ONLY 플래그는 선택적 로깅을 수행하는 데 사용됩니다. 이러한 플래그 중 하나만 한 번에 설정할 수 있습니다. 상호 배타적입니다.

HTTP_LOGGING_FLAG_LOG_SUCCESS_ONLY
로그 성공 전용 플래그를 사용하면 성공적인 요청만 로깅할 수 있습니다. 기본적으로 오류 및 성공 요청은 모두 기록됩니다.

HTTP_LOGGING_FLAG_LOG_ERRORS_ONLYHTTP_LOGGING_FLAG_LOG_SUCCESS_ONLY 플래그는 선택적 로깅을 수행하는 데 사용됩니다. 이러한 플래그 중 하나만 한 번에 설정할 수 있습니다. 상호 배타적입니다.

SoftwareName

W3C 형식 로깅에 사용되는 선택적 소프트웨어 이름 문자열입니다. 이 이름은 다른 유형의 로깅에 사용되지 않습니다. 이 매개 변수가 NULL이면 HTTP Server API는 기본 문자열을 기록합니다.

SoftwareNameLength

소프트웨어 이름의 길이(바이트)입니다. 길이는 MAX_PATH 초과할 수 없습니다.

SoftwareName 멤버가 NULL인 경우 이 길이는 0이어야 합니다.

DirectoryNameLength

디렉터리 이름의 길이(바이트)입니다. 길이는 424바이트보다 클 수 없습니다.

DirectoryName

로그 파일이 만들어지는 로깅 디렉터리입니다. 디렉터리 문자열은 드라이브 문자를 포함하여 정규화된 경로여야 합니다.

애플리케이션은 원격 머신에 대한 UNC 경로를 사용하여 UNC 로깅을 사용하도록 설정할 수 있습니다.

Format

다음 로그 파일 형식 중 하나를 지정하는 HTTP_LOGGING_TYPE 열거형의 멤버입니다.

형식 의미
HttpLoggingTypeW3C
로그 형식은 W3C 스타일 확장 로깅입니다. 이 형식을 사용하면 애플리케이션에서 기록할 로그 필드의 조합을 선택할 수 있습니다. W3C 로깅이 URL 그룹에 설정된 경우 로깅은 IIS6 사이트 로깅과 유사합니다. 서버 세션에서 W3C 로깅이 설정되면 이 로깅은 모든 URL 그룹에 대한 중앙 집중식 로깅으로 작동합니다.
HttpLoggingTypeIIS
로그 형식은 IIS6/5 스타일 로깅입니다. 이 형식에는 고정 필드 정의가 있습니다. 애플리케이션은 기록된 필드를 선택할 수 없습니다. 이 형식은 서버 세션을 로깅하는 데 사용할 수 없습니다.
HttpLoggingTypeNCSA
로그 형식은 NCSA 스타일 로깅입니다. 이 형식에는 고정 필드 정의가 있습니다. 애플리케이션은 기록된 필드를 선택할 수 없습니다. 이 형식은 서버 세션을 로깅하는 데 사용할 수 없습니다.
HttpLoggingTypeRaw
로그 형식은 중앙 집중식 이진 로깅입니다. 이 형식에는 고정 필드 정의가 있습니다. 애플리케이션은 기록된 필드를 선택할 수 없습니다. 이 형식은 URL 그룹을 로깅하는 데 사용할 수 없습니다.

Fields

형식이 W3C로 설정된 경우 기록되는 필드입니다. 이러한 값은 HTTP_LOG_FIELD_ 상수 값 중 하나 이상일 수 있습니다.

로깅 형식이 W3C인 경우 애플리케이션은 로그 필드를 지정해야 합니다. 그렇지 않으면 필드가 기록되지 않습니다.

pExtFields

예약되어 있습니다. 0(0) 또는 NULL로 설정합니다.

NumOfExtFields

예약되어 있습니다. 0(0) 또는 NULL로 설정합니다.

MaxRecordSize

예약되어 있습니다. 0(0) 또는 NULL로 설정합니다.

RolloverType

로그 파일 롤오버 조건을 지정하는 HTTP_LOGGING_ROLLOVER_TYPE 열거형의 다음 멤버 중 하나입니다.

롤오버 형식 의미
HttpLoggingRolloverSize
로그 파일은 지정된 크기에 도달하거나 초과하면 롤오버됩니다.
HttpLoggingRolloverDaily
로그 파일은 매일 롤오버됩니다.
HttpLoggingRolloverWeekly
로그 파일은 매주 롤오버됩니다.
HttpLoggingRolloverMonthly
로그 파일은 매달 롤오버됩니다.
HttpLoggingRolloverHourly
로그 파일은 매시간 롤오버됩니다.

RolloverSize

로그 파일이 롤오버되는 최대 크기(바이트)입니다. HTTP_LIMIT_INFINITE 값은 무제한 크기를 나타냅니다. 최소값은 HTTP_MIN_ALLOWED_LOG_FILE_ROLLOVER_SIZE (1024 * 1024)보다 작을 수 없습니다.

이 필드는 HttpLoggingRolloverSize 롤오버 형식에만 사용되며 다른 모든 형식에 대해 0으로 설정해야 합니다.

롤오버 유형이 HttpLoggingRolloverSize인 경우 애플리케이션은 로그 파일의 최대 크기를 지정해야 합니다.

pSecurityDescriptor

로그 파일 디렉터리 및 모든 하위 디렉터리에 적용되는 보안 설명자입니다. 이 멤버가 NULL인 경우 시스템 기본 ACL이 사용되거나 부모 디렉터리에서 ACL이 상속됩니다.

설명

HttpServerLoggingProperty 속성은 HttpLoggingTypeW3C, HttpLoggingTypeIIS, HttpLoggingTypeNCSA 또는 HttpLoggingTypeRaw의 네 가지 서버 쪽 로깅 유형 중 하나를 설정합니다. 이 속성이 서버 세션에서 설정되면 해당 서버 세션 아래의 모든 URL 그룹에 대한 중앙 집중식 로깅 형식으로 작동합니다. 서버 세션 아래의 URL 그룹 중 하나로 라우팅되는 요청은 하나의 중앙 집중식 로그 파일에 기록됩니다. 로그 파일에 대한 구성 매개 변수는 httpSetServerSessionProperty 호출의 HTTP_LOGGING_INFO 구조에 전달됩니다.

이 속성이 URL 그룹에 설정된 경우 로깅은 URL 그룹으로 라우팅되는 요청에 대해서만 수행됩니다. 로그 파일은 요청이 URL 그룹 또는 서버 세션에 도착하면 만들어지고 로깅이 구성되면 만들어지지 않습니다.

애플리케이션은 DirectoryName 멤버에 지정된 디렉터리가 고유한지 확인해야 합니다.

로그 파일 이름은 지정된 롤오버 형식을 기반으로 합니다. 다음 표에서는 로그 파일에 대한 명명 규칙을 보여 줍니다.

형식 롤오버 유형 파일 이름 패턴
Microsoft IIS 로그 형식 크기 inetsvnn.log
시간별 inyymmddhh.log
매일 inyymmdd.log
매주 inyymmww.log
매월 inyymm.log
NCSA 일반 로그 파일 형식 크기 ncsann.log
시간별 ncyymmddhh.log
매일 ncyymmdd.log
매주 ncyymmww.log
매월 ncyymm.log
W3C 확장 로그 파일 형식 크기 extendnn.log
시간별 exyymmddhh.log
매일 exyymmdd.log
매주 exyymmww.log
매월 exyymm.log
 

표의 yy, mm, ww, dd, hh 및 nn 문자는 다음 숫자를 나타냅니다.

  • yy: 연도의 두 자리 표현입니다.
  • mm: 월의 두 자리 표현입니다.
  • ww: 주의 두 자리 표현입니다.
  • dd: 날짜의 두 자리 표현입니다.
  • hh: 24시간 표기법에서 시간의 두 자리 표현입니다.
  • nn: 숫자 시퀀스의 두 자리 표현입니다.

HTTP 버전 2.0 API에서는 응답이 기록될 수 있도록 애플리케이션이 HTTP_LOG_FIELDS_DATA 구조를 전달할 수 있도록 HttpSendHttpResponseHttpSendResponseEntityBody가 수정되었습니다. 서버 세션 또는 URL 그룹에서 HttpServerLoggingProperty 속성을 설정한다고 해서 HTTP 응답이 기록된다는 의미는 아닙니다. HTTPSendResponseEntityBody 및 HttpSendHttpResponse에 대한 호출에 선택적 HTTP_LOG_FIELDS_DATA 구조가 포함되지 않는 한 URL 그룹 또는 서버 세션에 대한 로깅은 수행되지 않습니다. 자세한 내용은 HTTP_LOG_FIELDS_DATA 항목을 참조하세요.

로그 파일 형식에 대한 자세한 내용은 IIS 로그 파일 형식 항목을 참조하세요.

요구 사항

   
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱만 해당]
머리글 http.h

참고 항목

HTTP Server API 버전 2.0 구조체

HTTP_LOGGING_FLAG_ 상수

HTTP_LOGGING_ROLLOVER_TYPE

HTTP_LOGGING_TYPE

HTTP_LOG_FIELD_ 상수

HTTP_SERVER_PROPERTY

HttpCloseRequestQueue

HttpCreateRequestQueue

HttpSetRequestQueueProperty

HttpShutdownRequestQueue