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 値のうち 1 つ以上を指定できます。

説明
HTTP_LOGGING_FLAG_LOCAL_TIME_ROLLOVER
ログ ファイルのロールオーバー時間をローカル時刻に変更します。 既定では、ログ ファイルのロールオーバーは GMT に基づいています。
HTTP_LOGGING_FLAG_USE_UTF8_CONVERSION
既定では、Unicode ログ フィールドは、システム のローカル コード ページを使用してマルチバイトに変換されます。 このフラグが設定されている場合は、代わりに UTF8 変換が使用されます。
HTTP_LOGGING_FLAG_LOG_ERRORS_ONLY
ログ エラーのみのフラグは、ログ エラーのみを有効にします。 既定では、エラー要求と成功要求の両方がログに記録されます。

HTTP_LOGGING_FLAG_LOG_ERRORS_ONLYフラグとHTTP_LOGGING_FLAG_LOG_SUCCESS_ONLY フラグは、選択的ログ記録を実行するために使用されます。 これらのフラグの 1 つだけを一度に設定できます。これらは相互に排他的です。

HTTP_LOGGING_FLAG_LOG_SUCCESS_ONLY
ログ成功のみのフラグでは、成功した要求のみをログに記録できます。 既定では、エラー要求と成功要求の両方がログに記録されます。

HTTP_LOGGING_FLAG_LOG_ERRORS_ONLYフラグとHTTP_LOGGING_FLAG_LOG_SUCCESS_ONLY フラグは、選択的ログ記録を実行するために使用されます。 これらのフラグの 1 つだけを一度に設定できます。これらは相互に排他的です。

SoftwareName

W3C 型のログで使用されるオプションのソフトウェア名文字列。 この名前は、他の種類のログ記録には使用されません。 このパラメーターが NULL の場合、HTTP Server API は既定の文字列をログに記録します。

SoftwareNameLength

ソフトウェア名の長さ (バイト単位)。 長さは MAX_PATHより大きくすることはできません。

SoftwareName メンバーが NULL の場合、この長さは 0 である必要があります。

DirectoryNameLength

ディレクトリ名の長さ (バイト単位)。 長さは 424 バイトを超えることはできません。

DirectoryName

ログ ファイルが作成されるログ ディレクトリ。 ディレクトリ文字列は、ドライブ文字を含む完全修飾パスである必要があります。

アプリケーションでは、リモート コンピューターへの UNC パスを使用して UNC ログを有効にすることができます。

Format

次のいずれかのログ ファイル形式を指定する HTTP_LOGGING_TYPE 列挙体のメンバー。

Format 説明
HttpLoggingTypeW3C
ログ形式は W3C スタイルの拡張ログです。 この形式では、ログに記録するログ フィールドの組み合わせを選択できます。 URL グループで W3C ログが設定されている場合、ログ記録は IIS6 サイト ログに似ています。 サーバー セッションで W3C ログが設定されている場合、このログ記録は、すべての URL グループの一元的なログとして機能します。
HttpLoggingTypeIIS
ログ形式は IIS6/5 スタイルのログ記録です。 この形式には固定フィールド定義があります。アプリケーションでは、ログに記録されるフィールドを選択できません。 この形式は、サーバー セッションのログ記録には使用できません。
HttpLoggingTypeNCSA
ログ形式は NCSA スタイルのログ記録です。 この形式には固定フィールド定義があります。アプリケーションでは、ログに記録されるフィールドを選択できません。 この形式は、サーバー セッションのログ記録には使用できません。
HttpLoggingTypeRaw
ログ形式は、一元化されたバイナリ ログです。 この形式には固定フィールド定義があります。アプリケーションでは、ログに記録されるフィールドを選択できません。 この形式は、URL グループのログ記録には使用できません。

Fields

形式が W3C に設定されている場合にログに記録されるフィールド。 これらは、 HTTP_LOG_FIELD_定数 値の 1 つ以上を指定できます。

ログ形式が W3C の場合、アプリケーションはログ フィールドを指定する必要があります。それ以外の場合、フィールドはログに記録されません。

pExtFields

予約済み。 0 (ゼロ) または NULL に設定 します

NumOfExtFields

予約済み。 0 (ゼロ) または NULL に設定 します

MaxRecordSize

予約済み。 0 (ゼロ) または NULL に設定 します

RolloverType

ログ ファイルのロールオーバーの条件を指定する HTTP_LOGGING_ROLLOVER_TYPE 列挙体の次のいずれかのメンバー。

ロールオーバーの種類 説明
HttpLoggingRolloverSize
ログ ファイルは、指定したサイズに達するか超えるとロールオーバーされます。
HttpLoggingRolloverDaily
ログ ファイルは毎日ロールオーバーされます。
HttpLoggingRolloverWeekly
ログ ファイルは毎週ロールオーバーされます。
HttpLoggingRolloverMonthly
ログ ファイルは毎月ロールオーバーされます。
HttpLoggingRolloverHourly
ログ ファイルは 1 時間ごとにロールオーバーされます。

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 の 4 種類のサーバー側ログ記録のいずれかを設定します。 このプロパティがサーバー セッションで設定されている場合、そのサーバー セッションの下にあるすべての URL グループのログ記録の一元化された形式として機能します。 サーバー セッションの下にあるいずれかの URL グループにルーティングされる要求は、1 つの一元化されたログ ファイルに記録されます。 ログ ファイルの構成パラメーターは、HttpSetServerSessionProperty の呼び出しのHTTP_LOGGING_INFO構造体で渡されます。

このプロパティが URL グループに設定されている場合、ログ記録は URL グループにルーティングされる要求に対してのみ実行されます。 ログ ファイルは、要求が URL グループまたはサーバー セッションに到着したときに作成されます。ログ記録が構成されている場合は作成されません。

アプリケーションでは、 DirectoryName メンバーで指定されたディレクトリが一意であることを確認する必要があります。

ログ ファイル名は、指定されたロールオーバーの種類に基づいています。 次の表は、ログ ファイルの名前付け規則を示しています。

Format ロールオーバーの種類 ファイル名パターン
Microsoft IIS ログ形式 サイズ inetsvnn.log
1 時間ごと inyymmddhh.log
毎日 inyymmdd.log
週次 inyymmww.log
月単位 inyymm.log
NCSA の一般的なログ ファイル形式 サイズ ncsann.log
1 時間ごと ncyymmddhh.log
毎日 ncyymmdd.log
週次 ncyymmww.log
月単位 ncyymm.log
W3C 拡張ログ ファイル形式 サイズ extendnn.log
1 時間ごと exyymmddhh.log
毎日 exyymmdd.log
週次 exyymmww.log
月単位 exyymm.log
 

表の yy、mm、ww、dd、hh、nn の文字は、次の数字を表します。

  • yy: 年の 2 桁の表現。
  • mm: 月の 2 桁の表現。
  • ww: 週の 2 桁の表現。
  • dd: 日の 2 桁の表現。
  • hh: 24 時間表記の時間の 2 桁の表現。
  • nn: 数値シーケンスの 2 桁の表現。

HTTP バージョン 2.0 API では、 HttpSendHttpResponseHttpSendResponseEntityBody が 改訂され、アプリケーションが HTTP_LOG_FIELDS_DATA 構造体を渡して応答をログに記録できるようにしました。 サーバー セッションまたは URL グループに HttpServerLoggingProperty プロパティを設定しても、HTTP 応答がログに記録されるわけではありません。 HTTPSendResponseEntityBody と HttpSendHttpResponse の呼び出しにオプションのHTTP_LOG_FIELDS_DATA構造体が含まれていない限り、URL グループまたはサーバー セッションのログ記録は行われません。 詳細については、 HTTP_LOG_FIELDS_DATA トピックを参照してください。

ログ ファイル形式の詳細については、 IIS ログ ファイル形式に関する トピックを参照してください。

要件

   
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
Header 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