estrutura HTTP_LOGGING_INFO (http.h)

A estrutura HTTP_LOGGING_INFO é usada para habilitar o log do lado do servidor em um grupo de URL ou em uma sessão de servidor.

Essa estrutura deve ser usada ao definir ou consultar o HttpServerLoggingProperty em um grupo de URLs ou sessão de servidor.

Sintaxe

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;

Membros

Flags

A estrutura HTTP_PROPERTY_FLAGS que especifica se a propriedade está presente.

LoggingFlags

Os sinalizadores de log opcionais alteram o comportamento de log padrão.

Eles podem ser um ou mais dos seguintes valores de HTTP_LOGGING_FLAG :

Valor Significado
HTTP_LOGGING_FLAG_LOCAL_TIME_ROLLOVER
Altera o tempo de substituição do arquivo de log para a hora local. Por padrão, as substituições de arquivo de log são baseadas em GMT.
HTTP_LOGGING_FLAG_USE_UTF8_CONVERSION
Por padrão, os campos de log unicode são convertidos em multibytes usando a página de código local dos sistemas. Se esses sinalizadores estiverem definidos, a conversão UTF8 será usada.
HTTP_LOGGING_FLAG_LOG_ERRORS_ONLY
O sinalizador de erros de log habilita apenas erros de log. Por padrão, o erro e a solicitação de êxito são registrados.

Os sinalizadores HTTP_LOGGING_FLAG_LOG_ERRORS_ONLY e HTTP_LOGGING_FLAG_LOG_SUCCESS_ONLY são usados para executar o registro em log seletivo. Somente um desses sinalizadores pode ser definido por vez; eles são mutuamente exclusivos.

HTTP_LOGGING_FLAG_LOG_SUCCESS_ONLY
O sinalizador de êxito de log permite apenas registrar solicitações bem-sucedidas. Por padrão, o erro e a solicitação de êxito são registrados.

Os sinalizadores HTTP_LOGGING_FLAG_LOG_ERRORS_ONLY e HTTP_LOGGING_FLAG_LOG_SUCCESS_ONLY são usados para executar o registro em log seletivo. Somente um desses sinalizadores pode ser definido por vez; eles são mutuamente exclusivos.

SoftwareName

A cadeia de caracteres de nome de software opcional usada no registro em log do tipo W3C. Esse nome não é usado para outros tipos de registro em log. Se esse parâmetro for NULL, a API do Servidor HTTP registrará uma cadeia de caracteres padrão.

SoftwareNameLength

O comprimento, em bytes, do nome do software. O comprimento não pode ser maior que MAX_PATH.

Se o membro SoftwareName for NULL, esse comprimento deverá ser zero.

DirectoryNameLength

O comprimento, em bytes, do nome do diretório. O comprimento não pode ser maior que 424 bytes.

DirectoryName

O diretório de log no qual os arquivos de log são criados. A cadeia de caracteres de diretório deve ser um caminho totalmente qualificado, incluindo a letra da unidade.

Os aplicativos podem usar um caminho UNC para um computador remoto para habilitar o registro em log UNC.

Format

Um membro da enumeração HTTP_LOGGING_TYPE especificando um dos seguintes formatos de arquivo de log.

Formatar Significado
HttpLoggingTypeW3C
O formato de log é o registro em log estendido no estilo W3C. Com esse formato, o aplicativo pode escolher uma combinação de campos de log a serem registrados. Quando o registro em log do W3C é definido em um grupo de URLs, o registro em log é semelhante ao log do site do IIS6. Quando o registro em log do W3C é definido em uma sessão de servidor, esse log funciona como um log centralizado para todos os Grupos de URLs.
HttpLoggingTypeIIS
O formato de log é registro em log de estilo IIS6/5. Esse formato tem definições de campo fixas; os aplicativos não podem selecionar os campos registrados. Esse formato não pode ser usado para registrar em log uma sessão de servidor.
HttpLoggingTypeNCSA
O formato de log é o log de estilo NCSA. Esse formato tem definições de campo fixas; os aplicativos não podem selecionar os campos registrados. Esse formato não pode ser usado para registrar em log uma sessão de servidor.
HttpLoggingTypeRaw
O formato de log é o log binário centralizado. Esse formato tem definições de campo fixas; os aplicativos não podem selecionar os campos registrados. Esse formato não pode ser usado para registrar um grupo de URLs em log.

Fields

Os campos que são registrados quando o formato é definido como W3C. Eles podem ser um ou mais dos valores de Constantes HTTP_LOG_FIELD_ .

Quando o formato de log for W3C for , os aplicativos deverão especificar os campos de log, caso contrário, nenhum campo será registrado.

pExtFields

Reservado. Defina como 0 (zero) ou NULL.

NumOfExtFields

Reservado. Defina como 0 (zero) ou NULL.

MaxRecordSize

Reservado. Defina como 0 (zero) ou NULL.

RolloverType

Um dos membros a seguir da enumeração HTTP_LOGGING_ROLLOVER_TYPE especificando os critérios para a substituição do arquivo de log.

Tipo de Substituição Significado
HttpLoggingRolloverSize
Os arquivos de log são substituídos quando atingem ou excedem um tamanho especificado.
HttpLoggingRolloverDaily
Os arquivos de log são distribuídos todos os dias.
HttpLoggingRolloverWeekly
Os arquivos de log são distribuídos toda semana.
HttpLoggingRolloverMonthly
Os arquivos de log são distribuídos todos os meses.
HttpLoggingRolloverHourly
Os arquivos de log são distribuídos a cada hora.

RolloverSize

O tamanho máximo, em bytes, após o qual os arquivos de log são substituídos. Um valor de HTTP_LIMIT_INFINITE indica um tamanho ilimitado. O valor mínimo não pode ser menor que HTTP_MIN_ALLOWED_LOG_FILE_ROLLOVER_SIZE (1024 * 1024).

Esse campo é usado apenas para o tipo de substituição HttpLoggingRolloverSize e deve ser definido como zero para todos os outros tipos.

Quando o tipo de substituição é HttpLoggingRolloverSize, os aplicativos devem especificar o tamanho máximo para o arquivo de log.

pSecurityDescriptor

O descritor de segurança que é aplicado ao diretório de arquivos de log e a todos os subdiretórios. Se esse membro for NULL, a ACL padrão do sistema será usada ou a ACL será herdada do diretório pai.

Comentários

A propriedade HttpServerLoggingProperty define um dos quatro tipos de log do lado do servidor: HttpLoggingTypeW3C, HttpLoggingTypeIIS, HttpLoggingTypeNCSA ou HttpLoggingTypeRaw. Quando essa propriedade é definida em uma sessão de servidor, ela funciona como uma forma centralizada de registro em log para todos os grupos de URLs nessa sessão de servidor. As solicitações roteadas para um dos grupos de URL na sessão do servidor são registradas em um arquivo de log centralizado. Os parâmetros de configuração do arquivo de log são passados na estrutura HTTP_LOGGING_INFO na chamada para HttpSetServerSessionProperty.

Quando essa propriedade é definida em um grupo de URL, o registro em log é executado somente em solicitações roteadas para o Grupo de URLs. Os arquivos de log são criados quando a solicitação chega no grupo de URLs ou na sessão do servidor, eles não são criados quando o registro em log é configurado.

Os aplicativos devem garantir que o diretório especificado no membro DirectoryName seja exclusivo.

Os nomes dos arquivos de log são baseados no tipo de substituição especificado. A tabela a seguir mostra as convenções de nomenclatura para arquivos de log.

Formatar Tipo de substituição Padrão de nome de arquivo
Formato de log do Microsoft IIS Tamanho inetsvnn.log
A cada hora inyyymmddhh.log
Diariamente inyyymmdd.log
Semanalmente inyyymmww.log
Mensal inyyymm.log
Formato de arquivo de log comum NCSA Tamanho ncsann.log
A cada hora ncyymmddhh.log
Diariamente ncyymmdd.log
Semanalmente ncyymmww.log
Mensal ncyymm.log
Formato de arquivo de log estendido W3C Tamanho extendnn.log
A cada hora exyymmddh.log
Diariamente exyymmdd.log
Semanalmente exyymmww.log
Mensal exyymm.log
 

As letras yy, mm, ww, dd, hh e nn na tabela representam os seguintes dígitos:

  • yy: a representação de dois dígitos do ano.
  • mm: a representação de dois dígitos do mês.
  • ww: a representação de dois dígitos da semana.
  • dd: a representação de dois dígitos do dia.
  • hh: a representação de dois dígitos da notação de hora em 24 horas.
  • nn: a representação de dois dígitos da sequência numérica.

Observe que, na API HTTP versão 2.0, httpSendHttpResponse e HttpSendResponseEntityBody foram revistos para permitir que os aplicativos passem uma estrutura HTTP_LOG_FIELDS_DATA para que a resposta possa ser registrada. Definir a propriedade HttpServerLoggingProperty em uma sessão de servidor ou em um grupo de URL não significa que as respostas HTTP sejam registradas. O logon no grupo de URL ou na sessão do servidor não ocorrerá, a menos que as chamadas para HttpSendResponseEntityBody e HttpSendHttpResponse incluam uma estrutura de HTTP_LOG_FIELDS_DATA opcional. Para obter mais informações, consulte o tópico HTTP_LOG_FIELDS_DATA .

Para obter informações sobre os formatos de arquivo de log, consulte o tópico Formatos de Arquivo de Log do IIS .

Requisitos

   
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Cabeçalho http.h

Confira também

Estruturas da API do servidor HTTP versão 2.0

Constantes HTTP_LOGGING_FLAG_

HTTP_LOGGING_ROLLOVER_TYPE

HTTP_LOGGING_TYPE

Constantes HTTP_LOG_FIELD_

HTTP_SERVER_PROPERTY

HttpCloseRequestQueue

HttpCreateRequestQueue

HttpSetRequestQueueProperty

HttpShutdownRequestQueue