Compartilhar via


Gravar o log de rastreamento

A gravação de log rastrear envolve o uso código não gerenciado para criar um personalizado estrutura cabeçalho, combinando o personalizado cabeçalho com um cabeçalho sistema Microsoft Windows, Registrando seu aplicativo como um provedor rastrear com o rastreamento de eventos para Windows APIs e então chamado Event Tracing for Windows APIs para gravar esses cabeçalhos de log rastrear.

Rastreamento de código de exemplo de log

O amostra de código Rastrear exemplo de log Trace Log Example mostra como gravar o log rastrear. A seguir é uma discussão sobre algumas das estruturas, enumerações e funções incluídas no exemplo.

A estrutura ULSTraceHeader

O ULSTraceHeader ULSTraceHeader estrutura contém propriedades que definem a mensagem rastrear. Cada ULSTraceHeader ULSTraceHeader estrutura representa uma única linha para gravar o log rastrear. Mensagens log de rastreamento podem abranger múltiplo linhas.

A definição estrutura segue:

internal struct ULSTraceHeader
{
  internal ushort Size;
  internal uint dwVersion;
  internal uint Id;
  internal Guid correlationID;
  internal TraceFlags dwFlags;
  [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]
  internal string wzExeName;
  [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]
  internal string wzProduct;
  [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]
  internal string wzCategory;
  [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 800)]
  internal string wzMessage;
  }

Size

Tamanho total da estrutura ulstraceheader ulstraceheader.

dwVersion

Versão o log rastrear. Para Windows SharePoint Services, sempre Defina isto como TRACE_VERSION_CURRENT. Essa enumeração também é definida em amostra de código de log de rastreamento.

Id

O identificador exclusivo para esta mensagem rastrear.

correlationID

Um identificador exclusivo que podem ser usadas para correlacionar este rastrear mensagens com outras mensagens.

dwFlags

Especifica se o cabeçalho é o início, meio ou final de uma mensagem log rastrear específico. Cada mensagem rastrear tem um comprimento máximo de caracteres 800. Devido a isso, uma mensagem log rastrear determinado pode abranger múltiplo cabeçalhos.

Uma mensagem log rastrear pode ter múltiplo "meio" seções. Mensagens log de rastreamento não são garantidas apareça consecutivamente dentro de log rastrear. No entanto, as mensagens "middle" e "fim" contêm um asterisco ao lado de carimbo de data/hora no log de rastrear. Os desenvolvedores podem usar a presença deste asterisco para identificar se uma linha é uma continuação de uma mensagem anterior. Além disso, cada linha do log de rastrear inclui o ProcessID e ThreadID, ativando um desenvolvedor para seguir o fluxo de um segmento específico para ver as mensagens ao redor.

A propriedade dwFlags dwFlags pode ser definida como um do seguinte enumerações TraceFlags TraceFlags, que também são definidas no amostra de código de log de rastreamento:

  • TRACE_FLAG_START esta linha rastrear é a iniciar de uma detalhada mensagem log rastrear.

  • TRACE_FLAG_MIDDLE esta linha rastrear é o meio de um detalhada mensagem log rastrear.

  • TRACE_FLAG_END esta linha rastrear é o fim de um detalhada mensagem log rastrear.

  • TRACE_FLAG_ID_AS_ASCII exibir cada byte a partir de uint contida no campo de identificação como um caractere ASCII. Por exemplo, o caractere "a" é "0x61" no formato ASCII. Portanto, se a identificação de uma mensagem rastrear for "0x61616161", a identificação será gravada para o log de rastreamento como "aaaa".

A NULL valor para a propriedade dwFlags dwFlags indica nenhum processamento especial foi aplicado.

wzExeName

O nome do aplicativo que gerou a mensagem log rastrear.

wzProduct

O nome do produto que gerou a mensagem log rastrear.

wzCategory

A categoria log rastrear atribuída a mensagem de log rastrear. Isso deve corresponder a um das categorias log de rastreamento definidas para o aplicativo gerando a mensagem log rastrear.

Para obter mais informações sobre como definir categorias, consulte Rastrear categorias de log.

wsMessage

O texto da mensagem de log rastrear. Cada linha mensagem de rastreamento tem um comprimento máximo de caracteres 800.

A enumeração TraceSeverity

O TraceSeverity TraceSeverity enumeração define os níveis rastrear que são gravados a coluna Tipo no log de rastrear. Esses são os válido apenas valores aceitos por Windows SharePoint Services; Se uma linha mensagem log de rastreamento é enviada com qualquer outro valor, ela é gravada para o log de rastreamento com um nível de gravidade de "indefinido".

Níveis de rastrear definidos na amostra de código execute:

public enum TraceSeverity
{
  Unassigned = 0,
  CriticalEvent = 1,
  WarningEvent = 2,
  InformationEvent = 3,
  Exception = 4,
  Assert = 7,
  Unexpected = 10,
  Monitorable = 15,
  High = 20,
  Medium = 50,
  Verbose = 100,
 }

A estrutura ULSTrace

O ULSTrace ULSTrace estrutura combina um cabeçalho rastrear evento Windows com o específico ULSTraceHeader ULSTraceHeader estrutura para a linha mensagem de rastreamento.

A definição estrutura segue:

internal struct ULSTrace
{
  internal EVENT_TRACE_HEADER Header;
  internal ULSTraceHeader ULSHeader;
}

A função ControlCallback

Essa implementação do Event Tracing for Windows ControlCallback chama solicitações para gravar linhas mensagem de rastreamento o log de rastreamento e Windows. Windows responde com um codificar solicitação de WMI_ENABLE_EVENTS quando o aplicativo é habilitado para gravar o log rastrear.

A função WriteTrace

O WriteTrace WriteTrace função tem os argumentos passados para ele e os usa para construção uma estrutura ulstrace ulstrace. Em seguida, ele chama a função TraceEvent Event Tracing for Windows para enviar a mensagem rastrear para o log rastrear.

A função principal

O Main principal função demonstra como usar o ControlCallback e WriteTrace WriteTrace funções para gravar mensagens rastrear a log de rastreamento. Ele mostra como usar o ControlCallback ControlCallback função durante o registro de log com Windows invocando o Event Tracing for Windows RegisterTraceGuids. Ele, em seguida, chama o WriteTrace WriteTrace função para gravar o log rastrear duas linhas mensagem exemplo. Finalmente, ele chama o UnregisterTraceGuids para cancelar o registro o aplicativo como um provedor rastrear evento.

Consulte também

Conceitos

Rastrear logs
Rastrear categorias de log
Rastrear exemplo de log