Kelas SqlErrorLogEvent
Berlaku untuk: SQL Server
Menyediakan properti untuk melihat peristiwa dalam file log SQL Server tertentu.
Sintaks
class SQLErrorLogEvent
{
stringFileName;
stringInstanceName;
datetimeLogDate;
stringMessage;
stringProcessInfo;
};
Properti
Kelas SQLErrorLogEvent menentukan properti berikut.
Properti | Deskripsi |
---|---|
FileName | Jenis data: string Jenis akses: Baca-saja Nama file log kesalahan. |
InstanceName | Jenis data: string Jenis akses: Baca-saja Kualifikasi: Kunci Nama instans SQL Server tempat file log berada. |
LogDate | Jenis data: tanggalwaktu Jenis akses: Baca-saja Kualifikasi: Kunci Tanggal dan waktu peristiwa direkam dalam file log. |
Pesan | Jenis data: string Jenis akses: Baca-saja Pesan acara. |
ProcessInfo | Jenis data: string Jenis akses: Baca-saja Informasi tentang ID proses server sumber (SPID) untuk peristiwa tersebut. |
Keterangan
Jenis | Nama |
---|---|
MOF | - sqlmgmprovider.mof (SQL Server 2022 (16.x) dan versi yang lebih baru)- sqlmgmproviderxpsp2up.mof (SQL Server 2019 (15.x) dan versi yang lebih lama) |
DLL | sqlmgmprovider.dll |
Ruang nama | \root\Microsoft\SqlServer\ComputerManagement10 |
Contoh
Contoh berikut menunjukkan cara mengambil nilai untuk semua peristiwa yang dicatat dalam file log tertentu. Untuk menjalankan contoh, ganti <Instance_Name> dengan nama instans SQL Server, seperti 'Instance1', dan ganti 'File_Name' dengan nama file log kesalahan, seperti '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
Komentar
Saat InstanceName atau FileName tidak disediakan dalam pernyataan WQL, kueri mengembalikan informasi untuk instans default dan file log SQL Server saat ini. Misalnya, pernyataan WQL berikut mengembalikan semua peristiwa log dari file log saat ini (ERRORLOG) pada instans default (MSSQLSERVER).
"SELECT * FROM SqlErrorLogEvent"
Keamanan
Untuk menyambungkan ke file log SQL Server melalui WMI, Anda harus memiliki izin berikut pada komputer lokal dan jarak jauh:
Baca akses ke namespace Layanan WMI Root\Microsoft\SqlServer\ComputerManagement10 . Secara default, setiap orang memiliki akses baca melalui izin Aktifkan Akun.
Izin baca ke folder yang berisi log kesalahan. Secara default, log kesalahan terletak di jalur berikut (di mana <Drive> mewakili drive tempat Anda menginstal SQL Server dan <InstanceName> adalah nama instans SQL Server):
<Drive>:\Program Files\Microsoft SQL Server\MSSQL13 .<InstanceName>\MSSQL\Log
Jika Anda tersambung melalui firewall, pastikan bahwa pengecualian diatur dalam firewall untuk WMI pada komputer target jarak jauh. Untuk informasi selengkapnya, lihat Menyambungkan ke WMI Dari Jarak Jauh Dimulai dengan Windows Vista.