SqlErrorLogEvent-klassen

Gäller för:SQL Server

Tillhandahåller egenskaper för att visa händelser i en specificerad SQL Server-loggfil.

Syntax

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

Egenskaper

SQLErrorLogEvent-klassen definierar följande egenskaper.

Property Beskrivning
Filnamn Datatyp: sträng

Åtkomsttyp: Skrivskyddad

Namnet på felloggfilen.
Instansnamn Datatyp: sträng

Åtkomsttyp: Skrivskyddad

Kvalificerare: Nyckel

Namnet på instansen av SQL Server där loggfilen finns.
LogDate Datatyp: datetime

Åtkomsttyp: Skrivskyddad

Kvalificerare: Nyckel

Datum och tid då händelsen registrerades i loggfilen.
Message Datatyp: sträng

Åtkomsttyp: Skrivskyddad

Händelsemeddelandet.
ProcessInfo Datatyp: sträng

Åtkomsttyp: Skrivskyddad

Information om källsessions-ID (SPID) för händelsen.

Remarks

Type Name
MOF - sqlmgmprovider.mof(SQL Server 2022 (16.x) och senare versioner)
- sqlmgmproviderxpsp2up.mof(SQL Server 2019 (15.x) och tidigare versioner)
DLL sqlmgmprovider.dll
Namespace \root\Microsoft\SqlServer\ComputerManagement10

Example

Följande exempel visar hur man hämtar värden för alla loggade händelser i en specificerad loggfil. För att köra exemplet, ersätt <Instance_Name> med namnet på instansen av SQL Server, såsom 'Instance1', och ersätt 'File_Name' med namnet på felloggfilen, till exempel '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

Comments

När InstanceName eller FileName inte anges i WQL-satsen, returnerar frågan information för standardinstansen och den aktuella SQL Server-loggfilen. Till exempel returnerar följande WQL-sats alla logghändelser från den aktuella loggfilen (ERRORLOG) på standardinstansen (MSSQLSERVER).

"SELECT * FROM SqlErrorLogEvent"

Security

För att ansluta till en SQL Server-loggfil via WMI måste du ha följande behörigheter på både den lokala och fjärrdatorn:

  • Läs tillgång till Root\Microsoft\SqlServer\ComputerManagement10 WMI-namnrymden. Som standard har alla läsbehörighet via behörigheten Aktivera konto.

  • Läs behörighet till mappen som innehåller felloggarna. Som standard finns felloggarna i följande sökväg (där <Drive> representerar den enhet där du installerade SQL Server och <InstanceName> är namnet på instansen av SQL Server):

    <Drive>:\Program Files\Microsoft SQL Server\MSSQL13.<InstanceName>\MSSQL\Log

Om du ansluter via en brandvägg, se till att ett undantag är inställt i brandväggen för WMI på fjärrdatorer som mål. För mer information, se Anslutning till WMI på distans från och med Windows Vista.