Share via


EventLog Kelas

Definisi

Menyediakan interaksi dengan log peristiwa Windows.

public ref class EventLog : System::ComponentModel::Component, System::ComponentModel::ISupportInitialize
public class EventLog : System.ComponentModel.Component, System.ComponentModel.ISupportInitialize
type EventLog = class
    inherit Component
    interface ISupportInitialize
Public Class EventLog
Inherits Component
Implements ISupportInitialize
Warisan
Penerapan

Contoh

Contoh berikut membuat sumber MySource peristiwa jika belum ada, dan menulis entri ke log MyNewLogperistiwa .

Catatan

Dimulai dengan Windows Vista, Anda harus menjalankan aplikasi ini sebagai administrator.

#using <System.dll>

using namespace System;
using namespace System::Diagnostics;
using namespace System::Threading;
int main()
{
   
   // Create the source, if it does not already exist.
   if (  !EventLog::SourceExists( "MySource" ) )
   {
      //An event log source should not be created and immediately used.
      //There is a latency time to enable the source, it should be created
      //prior to executing the application that uses the source.
      //Execute this sample a second time to use the new source.
      EventLog::CreateEventSource( "MySource", "MyNewLog" );
      Console::WriteLine( "CreatingEventSource" );
      // The source is created.  Exit the application to allow it to be registered.
      return 0;
   }

   
   // Create an EventLog instance and assign its source.
   EventLog^ myLog = gcnew EventLog;
   myLog->Source = "MySource";
   
   // Write an informational entry to the event log.    
   myLog->WriteEntry( "Writing to event log." );
}
using System;
using System.Diagnostics;
using System.Threading;

class MySample{

    public static void Main(){

        // Create the source, if it does not already exist.
        if(!EventLog.SourceExists("MySource"))
        {
             //An event log source should not be created and immediately used.
             //There is a latency time to enable the source, it should be created
             //prior to executing the application that uses the source.
             //Execute this sample a second time to use the new source.
            EventLog.CreateEventSource("MySource", "MyNewLog");
            Console.WriteLine("CreatedEventSource");
            Console.WriteLine("Exiting, execute the application a second time to use the source.");
            // The source is created.  Exit the application to allow it to be registered.
            return;
        }

        // Create an EventLog instance and assign its source.
        EventLog myLog = new EventLog();
        myLog.Source = "MySource";

        // Write an informational entry to the event log.
        myLog.WriteEntry("Writing to event log.");
    }
}
Option Explicit
Option Strict

Imports System.Diagnostics
Imports System.Threading

Class MySample
    Public Shared Sub Main()
        
        If Not EventLog.SourceExists("MySource") Then
            ' Create the source, if it does not already exist.
            ' An event log source should not be created and immediately used.
            ' There is a latency time to enable the source, it should be created
            ' prior to executing the application that uses the source.
            ' Execute this sample a second time to use the new source.
            EventLog.CreateEventSource("MySource", "MyNewLog")
            Console.WriteLine("CreatingEventSource")
            'The source is created.  Exit the application to allow it to be registered.
            Return
        End If
        
        ' Create an EventLog instance and assign its source.
        Dim myLog As New EventLog()
        myLog.Source = "MySource"
        
        ' Write an informational entry to the event log.    
        myLog.WriteEntry("Writing to event log.")
    End Sub
End Class

Keterangan

EventLog memungkinkan Anda mengakses atau menyesuaikan log peristiwa Windows, yang merekam informasi tentang peristiwa perangkat lunak atau perangkat keras penting. Menggunakan EventLog, Anda dapat membaca dari log yang ada, menulis entri ke log, membuat atau menghapus sumber peristiwa, menghapus log, dan merespons entri log. Anda juga dapat membuat log baru saat membuat sumber peristiwa.

Penting

Jenis ini mengimplementasikan IDisposable antarmuka. Ketika Anda telah selesai menggunakan jenis , Anda harus membuangnya baik secara langsung atau tidak langsung. Untuk membuang jenis secara langsung, panggil metodenya Dispose dalam try/catch blok. Untuk membuangnya secara tidak langsung, gunakan konstruksi bahasa seperti using (dalam C#) atau Using (di Visual Basic). Untuk informasi selengkapnya, lihat bagian "Menggunakan Objek yang Mengimplementasikan IDisposable" dalam IDisposable topik antarmuka.

Selain menyediakan akses ke log peristiwa individual dan entrinya, EventLog kelas ini memungkinkan Anda mengakses koleksi semua log peristiwa. Anda dapat menggunakan static anggota EventLog untuk menghapus log, mendapatkan daftar log, membuat atau menghapus sumber, atau menentukan apakah komputer sudah berisi sumber tertentu.

Ada tiga log peristiwa default: Aplikasi, Sistem, dan Keamanan. Log Keamanan bersifat baca-saja. Aplikasi dan layanan lain yang Anda instal, seperti Direktori Aktif, mungkin memiliki log peristiwa tambahan.

Ada pertimbangan keamanan saat menggunakan EventLog kelas . EventLogEventLogPermission memerlukan izin untuk tindakan tertentu di .NET Framework 2.0 dan versi yang lebih baru, atau kepercayaan penuh pada .NET Framework 1.0 dan 1.1. Kami menyarankan agar EventLogPermission tidak diberikan ke kode tepercaya sebagian. Anda tidak boleh meneruskan objek log peristiwa apa pun, termasuk EventLogEntryCollection objek dan EventLogEntry , ke kode yang kurang tepercaya. Misalnya, membuat EventLog objek, menulis entri, lalu meneruskan EventLog objek ke kode tepercaya sebagian dapat membuat masalah keamanan, karena kemampuan untuk membaca dan menulis ke log peristiwa memungkinkan kode untuk melakukan tindakan seperti mengeluarkan pesan log peristiwa atas nama aplikasi lain.

Dimulai dengan Windows Vista, Kontrol Akun Pengguna (UAC) menentukan kredensial pengguna. Jika Anda adalah anggota grup Administrator Bawaan, Anda diberi dua token akses run-time: token akses pengguna standar dan token akses administrator. Secara default, Anda berada dalam peran pengguna standar. Untuk menjalankan kode yang mengakses log Keamanan, Anda harus terlebih dahulu meningkatkan kredensial Anda dari pengguna standar ke administrator. Anda dapat melakukan ini saat memulai aplikasi dengan membuka menu pintasan untuk aplikasi (jika Anda menggunakan mouse, klik kanan ikon aplikasi) dan menunjukkan bahwa Anda ingin menjalankan sebagai administrator.

Anda dapat menggunakan EventLog untuk membuat log peristiwa kustom yang dapat Anda lihat melalui Pemantau Peristiwa server. RegisterDisplayName Gunakan metode untuk menampilkan nama yang dilokalkan untuk log peristiwa Anda di Pemantau Peristiwa. ModifyOverflowPolicy Gunakan metode untuk mengonfigurasi perilaku log peristiwa Anda saat mencapai ukuran log maksimumnya.

Untuk membaca dari log peristiwa, tentukan nama log (Log properti) dan nama komputer server (MachineName properti untuk log peristiwa. Jika Anda tidak menentukan nama komputer server, komputer lokal, ".", diasumsikan. Tidak perlu menentukan sumber peristiwa (Source properti), karena sumber hanya diperlukan untuk menulis ke log. Properti Entries secara otomatis diisi dengan daftar entri log peristiwa.

Untuk menulis ke log peristiwa, tentukan atau buat sumber peristiwa (Source properti ). Anda harus memiliki kredensial administratif di komputer untuk membuat sumber kejadian baru. Sumber kejadian mendaftarkan aplikasi Anda dengan log peristiwa sebagai sumber entri yang valid. Anda dapat menggunakan sumber kejadian untuk menulis hanya ke satu log pada satu waktu. Properti Source dapat berupa string acak apa pun, tetapi namanya harus berbeda dari sumber lain di komputer. Sumber kejadian biasanya adalah nama aplikasi atau string identifikasi lainnya. Mencoba membuat nilai duplikat Source melemparkan pengecualian. Namun, satu log peristiwa dapat dikaitkan dengan beberapa sumber.

Jika sumber peristiwa untuk log peristiwa yang terkait dengan EventLog instans tidak ada, sumber peristiwa baru akan dibuat. Untuk membuat sumber kejadian di Windows Vista dan yang lebih baru atau Windows Server 2003, Anda harus memiliki kredensial administratif.

Persyaratan ini karena semua log peristiwa, termasuk log Keamanan, harus dicari untuk menentukan apakah sumber kejadian unik. Dimulai dengan Windows Vista, pengguna tidak memiliki izin untuk mengakses log Keamanan; oleh karena itu, dilemparkan SecurityException .

Penting

Membuat atau menghapus sumber peristiwa memerlukan sinkronisasi kode yang mendasar dengan menggunakan mutex bernama. Jika aplikasi yang sangat istimewa mengunci mutex bernama, mencoba membuat atau menghapus sumber peristiwa menyebabkan aplikasi berhenti merespons hingga kunci dilepaskan. Untuk membantu mencegah masalah ini, jangan pernah memberikan UnmanagedCode izin ke kode yang tidak tepercaya. Selain itu, UnmanagedCode izin berpotensi memungkinkan izin lain dilewati dan hanya boleh diberikan ke kode yang sangat tepercaya.

Aplikasi dan layanan harus menulis ke log Aplikasi atau ke log kustom. Driver perangkat harus menulis ke log Sistem. Jika Anda tidak secara eksplisit mengatur Log properti , log peristiwa default ke log Aplikasi.

Catatan

Tidak ada yang melindungi aplikasi dari penulisan sebagai sumber terdaftar. Jika aplikasi diberikan Write izin, aplikasi dapat menulis peristiwa untuk sumber valid apa pun yang terdaftar di komputer.

WriteEvent Gunakan metode dan WriteEntry untuk menulis peristiwa ke log peristiwa. Anda harus menentukan sumber kejadian untuk menulis peristiwa; Anda harus membuat dan mengonfigurasi sumber peristiwa sebelum menulis entri pertama dengan sumbernya.

Create sumber kejadian baru selama penginstalan aplikasi Anda. Ini memungkinkan waktu bagi sistem operasi untuk me-refresh daftar sumber peristiwa terdaftar dan konfigurasinya. Jika sistem operasi belum merefresh daftar sumber peristiwanya, dan Anda mencoba menulis peristiwa dengan sumber baru, operasi tulis akan gagal. Anda dapat mengonfigurasi sumber baru dengan menggunakan EventLogInstaller objek atau CreateEventSource metode . Anda harus memiliki kredensial administratif di komputer untuk membuat sumber kejadian baru.

Setiap sumber hanya dapat menulis ke satu log peristiwa pada satu waktu; namun, aplikasi Anda dapat menggunakan beberapa sumber untuk menulis ke beberapa log peristiwa. Misalnya, aplikasi Anda mungkin memerlukan beberapa sumber yang dikonfigurasi untuk log peristiwa yang berbeda atau file sumber daya yang berbeda. Untuk mengubah detail konfigurasi sumber yang ada, Anda harus menghapus sumber lalu membuatnya dengan konfigurasi baru. Jika aplikasi atau komponen lain menggunakan sumber yang ada, buat sumber baru dengan konfigurasi yang diperbarui alih-alih menghapus sumber yang ada.

Anda dapat mendaftarkan sumber peristiwa dengan sumber daya yang dilokalkan untuk kategori peristiwa dan string pesan Anda. Aplikasi Anda dapat menulis entri log peristiwa dengan menggunakan pengidentifikasi sumber daya alih-alih menentukan nilai string aktual. EventLogInstaller Lihat kelas dan EventSourceCreationData untuk informasi selengkapnya tentang mengonfigurasi sumber Anda dengan file sumber daya.

Jika aplikasi Anda menulis nilai string langsung ke log peristiwa, Anda tidak perlu mengatur properti file sumber daya untuk sumbernya. Sumber harus dikonfigurasi baik untuk menulis entri yang dilokalkan atau untuk menulis string langsung. Jika aplikasi Anda menulis entri menggunakan pengidentifikasi sumber daya dan nilai string, Anda harus mendaftarkan dua sumber terpisah. Misalnya, konfigurasikan satu sumber dengan file sumber daya, lalu gunakan sumber tersebut WriteEvent dalam metode untuk menulis entri menggunakan pengidentifikasi sumber daya ke log peristiwa. Kemudian buat sumber yang berbeda tanpa file sumber daya, dan gunakan sumber tersebut WriteEntry dalam metode untuk menulis string langsung ke log peristiwa menggunakan sumber tersebut.

Saat menulis peristiwa, Anda setidaknya harus menentukan string pesan atau pengidentifikasi sumber daya untuk string pesan. Properti peristiwa lainnya bersifat opsional. Contoh pengaturan peristiwa opsional meliputi yang berikut ini:

  • Anda dapat mengatur EventLogEntryType untuk menentukan ikon yang ditampilkan Pemantau Peristiwa untuk entri.

  • Anda dapat menentukan pengidentifikasi kategori untuk peristiwa tersebut, jika aplikasi Anda menggunakan kategori untuk memfilter peristiwa.

  • Anda dapat melampirkan data biner ke entri peristiwa jika Anda ingin mengaitkan informasi tambahan dengan peristiwa tertentu.

Penting

Pengelogan peristiwa menggunakan ruang disk, waktu prosesor, dan sumber daya sistem lainnya. Penting untuk mencatat hanya informasi penting. Kami menyarankan agar Anda melakukan panggilan log peristiwa di jalur kesalahan, bukan di jalur kode utama, sehingga tidak berdampak buruk pada performa.

Untuk daftar nilai properti awal untuk instans EventLog, lihat EventLog konstruktor.

Konstruktor

EventLog()

Menginisialisasi instans baru kelas EventLog. Tidak mengaitkan instans dengan log apa pun.

EventLog(String)

Menginisialisasi instans baru kelas EventLog. Mengaitkan instans dengan log di komputer lokal.

EventLog(String, String)

Menginisialisasi instans baru kelas EventLog. Mengaitkan instans dengan log di komputer yang ditentukan.

EventLog(String, String, String)

Menginisialisasi instans baru kelas EventLog. Mengaitkan instans dengan log di komputer yang ditentukan dan membuat atau menetapkan sumber yang ditentukan ke EventLog.

Properti

CanRaiseEvents

Mendapatkan nilai yang menunjukkan apakah komponen dapat menaikkan peristiwa.

(Diperoleh dari Component)
Container

IContainer Mendapatkan yang berisi Component.

(Diperoleh dari Component)
DesignMode

Mendapatkan nilai yang menunjukkan apakah Component saat ini dalam mode desain.

(Diperoleh dari Component)
EnableRaisingEvents

Mendapatkan atau menetapkan nilai yang menunjukkan apakah EventLog menerima EntryWritten pemberitahuan peristiwa.

Entries

Mendapatkan konten log peristiwa.

Events

Mendapatkan daftar penanganan aktivitas yang dilampirkan ke ini Component.

(Diperoleh dari Component)
Log

Mendapatkan atau mengatur nama log untuk dibaca atau ditulis.

LogDisplayName

Mendapatkan nama akrab log peristiwa.

MachineName

Mendapatkan atau mengatur nama komputer untuk membaca atau menulis peristiwa.

MaximumKilobytes

Mendapatkan atau mengatur ukuran log peristiwa maksimum dalam kilobyte.

MinimumRetentionDays

Mendapatkan jumlah hari untuk menyimpan entri dalam log peristiwa.

OverflowAction

Mendapatkan perilaku yang dikonfigurasi untuk menyimpan entri baru ketika log peristiwa mencapai ukuran file log maksimumnya.

Site

Mendapatkan atau mengatur ISite dari Component.

(Diperoleh dari Component)
Source

Mendapatkan atau mengatur nama sumber untuk mendaftar dan menggunakan saat menulis ke log peristiwa.

SynchronizingObject

Mendapatkan atau mengatur objek yang digunakan untuk marshal panggilan penanganan aktivitas yang dikeluarkan sebagai akibat dari EventLog peristiwa tertulis entri.

Metode

BeginInit()

Memulai inisialisasi yang EventLog digunakan pada formulir atau digunakan oleh komponen lain. Inisialisasi terjadi pada runtime.

Clear()

Menghapus semua entri dari log peristiwa.

Close()

Menutup log peristiwa dan merilis handel baca dan tulis.

CreateEventSource(EventSourceCreationData)

Menetapkan sumber peristiwa yang valid untuk menulis pesan peristiwa yang dilokalkan, menggunakan properti konfigurasi yang ditentukan untuk sumber peristiwa dan log peristiwa yang sesuai.

CreateEventSource(String, String)

Menetapkan nama sumber yang ditentukan sebagai sumber kejadian yang valid untuk menulis entri ke log di komputer lokal. Metode ini juga dapat membuat log kustom baru di komputer lokal.

CreateEventSource(String, String, String)
Kedaluwarsa.
Kedaluwarsa.
Kedaluwarsa.

Menetapkan nama sumber yang ditentukan sebagai sumber kejadian yang valid untuk menulis entri ke log pada komputer yang ditentukan. Metode ini juga dapat digunakan untuk membuat log kustom baru pada komputer yang ditentukan.

CreateObjRef(Type)

Membuat objek yang berisi semua informasi relevan yang diperlukan untuk menghasilkan proksi yang digunakan untuk berkomunikasi dengan objek jarak jauh.

(Diperoleh dari MarshalByRefObject)
Delete(String)

Menghapus log peristiwa dari komputer lokal.

Delete(String, String)

Menghapus log peristiwa dari komputer yang ditentukan.

DeleteEventSource(String)

Menghapus pendaftaran sumber kejadian dari log peristiwa komputer lokal.

DeleteEventSource(String, String)

Menghapus pendaftaran sumber peristiwa aplikasi dari komputer yang ditentukan.

Dispose()

Merilis semua sumber daya yang Componentdigunakan oleh .

(Diperoleh dari Component)
Dispose(Boolean)

Merilis sumber daya tidak terkelola yang digunakan oleh EventLog, dan secara opsional merilis sumber daya terkelola.

EndInit()

Mengakhiri inisialisasi yang EventLog digunakan pada formulir atau oleh komponen lain. Inisialisasi terjadi pada runtime.

Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
Exists(String)

Menentukan apakah log ada pada komputer lokal.

Exists(String, String)

Menentukan apakah log ada pada komputer yang ditentukan.

GetEventLogs()

Mencari semua log peristiwa di komputer lokal dan membuat array EventLog objek yang berisi daftar.

GetEventLogs(String)

Mencari semua log peristiwa di komputer yang diberikan dan membuat array EventLog objek yang berisi daftar.

GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetLifetimeService()
Kedaluwarsa.

Mengambil objek layanan seumur hidup saat ini yang mengontrol kebijakan seumur hidup untuk instans ini.

(Diperoleh dari MarshalByRefObject)
GetService(Type)

Mengembalikan objek yang mewakili layanan yang disediakan oleh Component atau oleh Container.

(Diperoleh dari Component)
GetType()

Mendapatkan instans Type saat ini.

(Diperoleh dari Object)
InitializeLifetimeService()
Kedaluwarsa.

Mendapatkan objek layanan seumur hidup untuk mengontrol kebijakan seumur hidup untuk instans ini.

(Diperoleh dari MarshalByRefObject)
LogNameFromSourceName(String, String)

Mendapatkan nama log tempat sumber yang ditentukan didaftarkan.

MemberwiseClone()

Membuat salinan dangkal dari yang saat ini Object.

(Diperoleh dari Object)
MemberwiseClone(Boolean)

Membuat salinan dangkal objek saat ini MarshalByRefObject .

(Diperoleh dari MarshalByRefObject)
ModifyOverflowPolicy(OverflowAction, Int32)

Mengubah perilaku yang dikonfigurasi untuk menulis entri baru ketika log peristiwa mencapai ukuran file maksimumnya.

RegisterDisplayName(String, Int64)

Menentukan nama log peristiwa yang dilokalkan, yang ditampilkan di server Pemantau Peristiwa.

SourceExists(String)

Menentukan apakah sumber peristiwa terdaftar di komputer lokal.

SourceExists(String, String)

Menentukan apakah sumber kejadian terdaftar pada komputer tertentu.

ToString()

Mengembalikan yang String berisi nama Component, jika ada. Metode ini tidak boleh ditimpa.

(Diperoleh dari Component)
WriteEntry(String)

Menulis entri jenis informasi, dengan teks pesan yang diberikan, ke log peristiwa.

WriteEntry(String, EventLogEntryType)

Menulis kesalahan, peringatan, informasi, audit keberhasilan, atau entri audit kegagalan dengan teks pesan yang diberikan ke log peristiwa.

WriteEntry(String, EventLogEntryType, Int32)

Menulis entri dengan teks pesan yang diberikan dan pengidentifikasi peristiwa yang ditentukan aplikasi ke log peristiwa.

WriteEntry(String, EventLogEntryType, Int32, Int16)

Menulis entri dengan teks pesan yang diberikan, pengidentifikasi peristiwa yang ditentukan aplikasi, dan kategori yang ditentukan aplikasi ke log peristiwa.

WriteEntry(String, EventLogEntryType, Int32, Int16, Byte[])

Menulis entri dengan teks pesan yang diberikan, pengidentifikasi peristiwa yang ditentukan aplikasi, dan kategori yang ditentukan aplikasi ke log peristiwa, dan menambahkan data biner ke pesan.

WriteEntry(String, String)

Menulis entri jenis informasi dengan teks pesan yang diberikan ke log peristiwa, menggunakan sumber peristiwa terdaftar yang ditentukan.

WriteEntry(String, String, EventLogEntryType)

Menulis kesalahan, peringatan, informasi, audit keberhasilan, atau entri audit kegagalan dengan teks pesan yang diberikan ke log peristiwa, menggunakan sumber peristiwa terdaftar yang ditentukan.

WriteEntry(String, String, EventLogEntryType, Int32)

Menulis entri dengan teks pesan yang diberikan dan pengidentifikasi peristiwa yang ditentukan aplikasi ke log peristiwa, menggunakan sumber peristiwa terdaftar yang ditentukan.

WriteEntry(String, String, EventLogEntryType, Int32, Int16)

Menulis entri dengan teks pesan yang diberikan, pengidentifikasi peristiwa yang ditentukan aplikasi, dan kategori yang ditentukan aplikasi ke log peristiwa, menggunakan sumber peristiwa terdaftar yang ditentukan. category dapat digunakan oleh Pemantau Peristiwa untuk memfilter peristiwa di log.

WriteEntry(String, String, EventLogEntryType, Int32, Int16, Byte[])

Menulis entri dengan teks pesan yang diberikan, pengidentifikasi peristiwa yang ditentukan aplikasi, dan kategori yang ditentukan aplikasi ke log peristiwa (menggunakan sumber peristiwa terdaftar yang ditentukan) dan menambahkan data biner ke pesan.

WriteEvent(EventInstance, Byte[], Object[])

Menulis entri log peristiwa dengan data peristiwa yang diberikan, string penggantian pesan, dan data biner terkait.

WriteEvent(EventInstance, Object[])

Menulis entri yang dilokalkan ke log peristiwa.

WriteEvent(String, EventInstance, Byte[], Object[])

Menulis entri log peristiwa dengan data peristiwa yang diberikan, string penggantian pesan, dan data biner terkait, dan menggunakan sumber peristiwa terdaftar yang ditentukan.

WriteEvent(String, EventInstance, Object[])

Menulis entri log peristiwa dengan data peristiwa dan string penggantian pesan yang diberikan, menggunakan sumber peristiwa terdaftar yang ditentukan.

Acara

Disposed

Terjadi ketika komponen dibuang oleh panggilan ke Dispose() metode .

(Diperoleh dari Component)
EntryWritten

Terjadi ketika entri ditulis ke log peristiwa pada komputer lokal.

Berlaku untuk

Lihat juga