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 つ以上を指定できます。
SoftwareName
W3C 型のログで使用されるオプションのソフトウェア名文字列。 この名前は、他の種類のログ記録には使用されません。 このパラメーターが NULL の場合、HTTP Server API は既定の文字列をログに記録します。
SoftwareNameLength
ソフトウェア名の長さ (バイト単位)。 長さは MAX_PATHより大きくすることはできません。
SoftwareName メンバーが NULL の場合、この長さは 0 である必要があります。
DirectoryNameLength
ディレクトリ名の長さ (バイト単位)。 長さは 424 バイトを超えることはできません。
DirectoryName
ログ ファイルが作成されるログ ディレクトリ。 ディレクトリ文字列は、ドライブ文字を含む完全修飾パスである必要があります。
アプリケーションでは、リモート コンピューターへの UNC パスを使用して UNC ログを有効にすることができます。
Format
次のいずれかのログ ファイル形式を指定する HTTP_LOGGING_TYPE 列挙体のメンバー。
Fields
形式が W3C に設定されている場合にログに記録されるフィールド。 これらは、 HTTP_LOG_FIELD_定数 値の 1 つ以上を指定できます。
ログ形式が W3C の場合、アプリケーションはログ フィールドを指定する必要があります。それ以外の場合、フィールドはログに記録されません。
pExtFields
予約済み。 0 (ゼロ) または NULL に設定 します。
NumOfExtFields
予約済み。 0 (ゼロ) または NULL に設定 します。
MaxRecordSize
予約済み。 0 (ゼロ) または NULL に設定 します。
RolloverType
ログ ファイルのロールオーバーの条件を指定する HTTP_LOGGING_ROLLOVER_TYPE 列挙体の次のいずれかのメンバー。
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 では、 HttpSendHttpResponse と HttpSendResponseEntityBody が 改訂され、アプリケーションが 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 |