Share via


classe SqlErrorLogEvent

Aplica-se a:SQL Server

Fornece propriedades para exibir eventos em um arquivo de log SQL Server especificado.

Sintaxe

class SQLErrorLogEvent
{
    stringFileName;
    stringInstanceName;
    datetimeLogDate;
    stringMessage;
    stringProcessInfo;
};

Propriedades

A classe SQLErrorLogEvent define as propriedades a seguir.

Propriedade Descrição
nome_de_arquivo Tipo de dados: cadeia de caracteres

Tipo de acesso: Somente leitura

O nome do arquivo do log de erros.
InstanceName Tipo de dados: cadeia de caracteres

Tipo de acesso: Somente leitura

Qualificadores: Chave

O nome da instância de SQL Server em que o arquivo de log reside.
LogDate Tipo de dados: datetime

Tipo de acesso: Somente leitura

Qualificadores: Chave

A data e a hora em que o evento foi gravado no arquivo de log.
Mensagem Tipo de dados: cadeia de caracteres

Tipo de acesso: Somente leitura

A mensagem do evento.
Processinfo Tipo de dados: cadeia de caracteres

Tipo de acesso: Somente leitura

Informações sobre a SPID (ID do processo do servidor de origem) do evento.

Comentários

Type Nome
MOF - sqlmgmprovider.mof(SQL Server 2022 (16.x) e versões posteriores)
- sqlmgmproviderxpsp2up.mof(SQL Server 2019 (15.x) e versões anteriores)
DLL sqlmgmprovider.dll
Namespace \root\Microsoft\SqlServer\ComputerManagement10

Exemplo

O exemplo a seguir mostra como recuperar valores para todos os eventos registrados em um arquivo de log especificado. Para executar o exemplo, substitua <Instance_Name> pelo nome da instância do SQL Server, como 'Instance1', e substitua 'File_Name' pelo nome do arquivo de log de erros, como 'ERRORLOG.1'.

on error resume next
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" _
    & strComputer & "\root\MICROSOFT\SqlServer\ComputerManagement10")
set logEvents = objWmiService.ExecQuery("SELECT * FROM SqlErrorLogEvent WHERE InstanceName = '<Instance_Name>' AND FileName = 'File_Name'")
  
For Each logEvent in logEvents
WScript.Echo "Instance Name: " & logEvent.InstanceName & vbNewLine _
    & "Log Date: " & logEvent.LogDate & vbNewLine _
    & "Log File Name: " & logEvent.FileName & vbNewLine _
    & "Process Info: " & logEvent.ProcessInfo & vbNewLine _
    & "Message: " & logEvent.Message & vbNewLine _
  
Next

Comentários

Quando InstanceName ou FileName não são fornecidos na instrução WQL, a consulta retorna informações para a instância padrão e o arquivo de log SQL Server atual. Por exemplo, a instrução WQL a seguir retorna todos os eventos de log do arquivo de log atual (ERRORLOG) na instância padrão (MSSQLSERVER).

"SELECT * FROM SqlErrorLogEvent"

Segurança

Para se conectar a um arquivo de log SQL Server por meio do WMI, você deve ter as seguintes permissões nos computadores locais e remotos:

  • Acesso de leitura ao namespace Root\Microsoft\SqlServer\ComputerManagement10 WMI. Por padrão, todos usuários têm acesso de leitura por meio da permissão Habilitar Conta.

  • Permissão de leitura para a pasta que contém os logs de erros. Por padrão, os logs de erro estão localizados no caminho a seguir (em que <Drive> representa a unidade em que você instalou SQL Server e <InstanceName> é o nome da instância do SQL Server):

    <Unidade>:\Arquivos de Programas\Microsoft SQL Server\MSSQL13.< InstanceName>\MSSQL\Log

Se você estiver se conectando por meio de um firewall, verifique se uma exceção está definida no firewall para WMI em computadores de destino remoto. Para obter mais informações, consulte Conectando-se ao WMI remotamente começando com o Windows Vista.

Confira também