Share via


EventLog.CreateEventSource Metode

Definisi

Membuat aplikasi yang dapat menulis informasi peristiwa ke log tertentu pada sistem.

Overload

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.

CreateEventSource(EventSourceCreationData)

Sumber:
EventLog.cs
Sumber:
EventLog.cs
Sumber:
EventLog.cs

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

public:
 static void CreateEventSource(System::Diagnostics::EventSourceCreationData ^ sourceData);
public static void CreateEventSource (System.Diagnostics.EventSourceCreationData sourceData);
static member CreateEventSource : System.Diagnostics.EventSourceCreationData -> unit
Public Shared Sub CreateEventSource (sourceData As EventSourceCreationData)

Parameter

sourceData
EventSourceCreationData

Properti konfigurasi untuk sumber peristiwa dan log peristiwa targetnya.

Pengecualian

Nama komputer yang ditentukan di sourceData tidak valid.

-atau-

Nama sumber yang ditentukan di sourceData adalah null.

-atau-

Nama log yang ditentukan di sourceData tidak valid. Nama log peristiwa harus terdiri dari karakter yang dapat dicetak dan tidak dapat menyertakan karakter '*', '?', atau '\'.

-atau-

Nama log yang ditentukan di sourceData tidak valid untuk pembuatan log pengguna. Nama log Peristiwa AppEvent, SysEvent, dan SecEvent disediakan untuk penggunaan sistem.

-atau-

Nama log cocok dengan nama sumber peristiwa yang ada.

-atau-

Nama sumber yang ditentukan dalam sourceData menghasilkan jalur kunci registri yang lebih panjang dari 254 karakter.

-atau-

8 karakter pertama dari nama log yang ditentukan sourceData tidak unik.

-atau-

Nama sumber yang ditentukan di sourceData sudah terdaftar.

-atau-

Nama sumber yang ditentukan sesuai sourceData dengan nama log peristiwa yang ada.

Kunci registri untuk log peristiwa tidak dapat dibuka.

sourceDataadalah null.

Contoh

Contoh berikut menentukan apakah sumber peristiwa bernama SampleApplicationSource terdaftar di komputer lokal. Jika sumber peristiwa tidak ada, contoh mengatur file sumber daya pesan untuk sumber dan membuat sumber peristiwa baru. Terakhir, contoh menetapkan nama tampilan yang dilokalkan untuk log peristiwa, menggunakan nilai pengidentifikasi sumber daya di DisplayNameMsgId dan jalur file sumber daya di messageFile.

void CreateEventSourceSample1( String^ messageFile )
{
   String^ myLogName;
   String^ sourceName = "SampleApplicationSource";
   
   // Create the event source if it does not exist.
   if (  !EventLog::SourceExists( sourceName ) )
   {
      
      // Create a new event source for the custom event log
      // named "myNewLog."  
      myLogName = "myNewLog";
      EventSourceCreationData ^ mySourceData = gcnew EventSourceCreationData( sourceName,myLogName );
      
      // Set the message resource file that the event source references.
      // All event resource identifiers correspond to text in this file.
      if (  !System::IO::File::Exists( messageFile ) )
      {
         Console::WriteLine( "Input message resource file does not exist - {0}", messageFile );
         messageFile = "";
      }
      else
      {
         
         // Set the specified file as the resource
         // file for message text, category text, and 
         // message parameter strings.  
         mySourceData->MessageResourceFile = messageFile;
         mySourceData->CategoryResourceFile = messageFile;
         mySourceData->CategoryCount = CategoryCount;
         mySourceData->ParameterResourceFile = messageFile;
         Console::WriteLine( "Event source message resource file set to {0}", messageFile );
      }

      Console::WriteLine( "Registering new source for event log." );
      EventLog::CreateEventSource( mySourceData );
   }
   else
   {
      
      // Get the event log corresponding to the existing source.
      myLogName = EventLog::LogNameFromSourceName( sourceName, "." );
   }

   
   // Register the localized name of the event log.
   // For example, the actual name of the event log is "myNewLog," but
   // the event log name displayed in the Event Viewer might be
   // "Sample Application Log" or some other application-specific
   // text.
   EventLog^ myEventLog = gcnew EventLog( myLogName,".",sourceName );
   if ( messageFile->Length > 0 )
   {
      myEventLog->RegisterDisplayName( messageFile, DisplayNameMsgId );
   }   
}
static void CreateEventSourceSample1(string messageFile)
{
    string myLogName;
    string sourceName = "SampleApplicationSource";

    // Create the event source if it does not exist.
    if(!EventLog.SourceExists(sourceName))
    {
        // Create a new event source for the custom event log
        // named "myNewLog."

        myLogName = "myNewLog";
        EventSourceCreationData mySourceData = new EventSourceCreationData(sourceName, myLogName);

        // Set the message resource file that the event source references.
        // All event resource identifiers correspond to text in this file.
        if (!System.IO.File.Exists(messageFile))
        {
            Console.WriteLine("Input message resource file does not exist - {0}",
                messageFile);
            messageFile = "";
        }
        else
        {
            // Set the specified file as the resource
            // file for message text, category text, and
            // message parameter strings.

            mySourceData.MessageResourceFile = messageFile;
            mySourceData.CategoryResourceFile = messageFile;
            mySourceData.CategoryCount = CategoryCount;
            mySourceData.ParameterResourceFile = messageFile;

            Console.WriteLine("Event source message resource file set to {0}",
                messageFile);
        }

        Console.WriteLine("Registering new source for event log.");
        EventLog.CreateEventSource(mySourceData);
    }
    else
    {
        // Get the event log corresponding to the existing source.
        myLogName = EventLog.LogNameFromSourceName(sourceName,".");
    }

    // Register the localized name of the event log.
    // For example, the actual name of the event log is "myNewLog," but
    // the event log name displayed in the Event Viewer might be
    // "Sample Application Log" or some other application-specific
    // text.
    EventLog myEventLog = new EventLog(myLogName, ".", sourceName);

    if (messageFile.Length > 0)
    {
        myEventLog.RegisterDisplayName(messageFile, DisplayNameMsgId);
    }
}
Public Shared Sub CreateEventSourceSample1(ByVal messageFile As String)

    Dim myLogName As String
    Dim sourceName As String = "SampleApplicationSource"

    ' Create the event source if it does not exist.
    If Not EventLog.SourceExists(sourceName)
    
        ' Create a new event source for the custom event log
        ' named "myNewLog."  

        myLogName = "myNewLog"
        Dim mySourceData As EventSourceCreationData = New EventSourceCreationData(sourceName, myLogName)

        ' Set the message resource file that the event source references.
        ' All event resource identifiers correspond to text in this file.
        If Not System.IO.File.Exists(messageFile)

            Console.WriteLine("Input message resource file does not exist - {0}", _
                messageFile)
            messageFile = ""
        Else 
            ' Set the specified file as the resource
            ' file for message text, category text and 
            ' message parameters strings.

            mySourceData.MessageResourceFile = messageFile
            mySourceData.CategoryResourceFile = messageFile
            mySourceData.CategoryCount = CategoryCount
            mySourceData.ParameterResourceFile = messageFile

            Console.WriteLine("Event source message resource file set to {0}", _
                messageFile)
        End If

        Console.WriteLine("Registering new source for event log.")
        EventLog.CreateEventSource(mySourceData)
    Else
        ' Get the event log corresponding to the existing source.
        myLogName = EventLog.LogNameFromSourceName(sourceName,".")
    End If

    ' Register the localized name of the event log.
    ' For example, the actual name of the event log is "myNewLog," but
    ' the event log name displayed in the Event Viewer might be
    ' "Sample Application Log" or some other application-specific
    ' text.
    Dim myEventLog As EventLog = New EventLog(myLogName, ".", sourceName)
    
    If messageFile.Length > 0
        myEventLog.RegisterDisplayName(messageFile, DisplayNameMsgId)
    End If
End Sub

Contohnya menggunakan file teks pesan berikut, yang disertakan dalam pustaka sumber daya EventLogMsgs.dll. File teks pesan adalah sumber tempat file sumber daya pesan dibuat. File teks pesan menentukan pengidentifikasi sumber daya dan teks untuk string kategori, pesan peristiwa, dan penyisipan parameter. Secara khusus, pengidentifikasi sumber daya 5001 didefinisikan untuk nama log peristiwa yang dilokalkan.

; // EventLogMsgs.mc  
; // ********************************************************  

; // Use the following commands to build this file:  

; //   mc -s EventLogMsgs.mc  
; //   rc EventLogMsgs.rc  
; //   link /DLL /SUBSYSTEM:WINDOWS /NOENTRY /MACHINE:x86 EventLogMsgs.Res   
; // ********************************************************  

; // - Event categories -  
; // Categories must be numbered consecutively starting at 1.  
; // ********************************************************  

MessageId=0x1  
Severity=Success  
SymbolicName=INSTALL_CATEGORY  
Language=English  
Installation  
.  

MessageId=0x2  
Severity=Success  
SymbolicName=QUERY_CATEGORY  
Language=English  
Database Query  
.  

MessageId=0x3  
Severity=Success  
SymbolicName=REFRESH_CATEGORY  
Language=English  
Data Refresh  
.  

; // - Event messages -  
; // *********************************  

MessageId = 1000  
Severity = Success  
Facility = Application  
SymbolicName = AUDIT_SUCCESS_MESSAGE_ID_1000  
Language=English  
My application message text, in English, for message id 1000, called from %1.  
.  

MessageId = 1001  
Severity = Warning  
Facility = Application  
SymbolicName = AUDIT_FAILED_MESSAGE_ID_1001  
Language=English  
My application message text, in English, for message id 1001, called from %1.  
.  

MessageId = 1002  
Severity = Success  
Facility = Application  
SymbolicName = GENERIC_INFO_MESSAGE_ID_1002  
Language=English  
My generic information message in English, for message id 1002.  
.  

MessageId = 1003  
Severity = Warning  
Facility = Application  
SymbolicName = GENERIC_WARNING_MESSAGE_ID_1003  
Language=English  
My generic warning message in English, for message id 1003, called from %1.  
.  

MessageId = 1004  
Severity = Success  
Facility = Application  
SymbolicName = UPDATE_CYCLE_COMPLETE_MESSAGE_ID_1004  
Language=English  
The update cycle is complete for %%5002.  
.  

MessageId = 1005  
Severity = Warning  
Facility = Application  
SymbolicName = SERVER_CONNECTION_DOWN_MESSAGE_ID_1005  
Language=English  
The refresh operation did not complete because the connection to server %1 could not be established.  
.  

; // - Event log display name -  
; // ********************************************************  

MessageId = 5001  
Severity = Success  
Facility = Application  
SymbolicName = EVENT_LOG_DISPLAY_NAME_MSGID  
Language=English  
Sample Event Log  
.  

; // - Event message parameters -  
; //   Language independent insertion strings  
; // ********************************************************  

MessageId = 5002  
Severity = Success  
Facility = Application  
SymbolicName = EVENT_LOG_SERVICE_NAME_MSGID  
Language=English  
SVC_UPDATE.EXE  
.  

Keterangan

Gunakan kelebihan beban ini untuk mengonfigurasi sumber baru untuk menulis entri ke log peristiwa pada komputer lokal atau komputer jarak jauh. Tidak perlu menggunakan metode ini untuk membaca dari log peristiwa.

Metode ini CreateEventSource menggunakan properti input sourceDataSource, LogName dan MachineName untuk membuat nilai registri pada komputer target untuk sumber baru dan log peristiwa terkait. Nama sumber baru tidak dapat cocok dengan nama sumber yang ada atau nama log peristiwa yang ada pada komputer target. LogName Jika properti tidak diatur, sumber didaftarkan untuk log peristiwa Aplikasi. MachineName Jika tidak diatur, sumber didaftarkan di komputer lokal.

Catatan

Untuk membuat sumber kejadian di Windows Vista dan yang lebih baru atau Windows Server 2003, Anda harus memiliki hak administratif.

Alasan untuk persyaratan ini adalah bahwa semua log peristiwa, termasuk keamanan, harus dicari untuk menentukan apakah sumber peristiwa unik. Dimulai dengan Windows Vista, pengguna tidak memiliki izin untuk mengakses log keamanan; oleh karena itu, dilemparkan SecurityException .

Dimulai dengan Windows Vista, Kontrol Akun Pengguna (UAC) menentukan hak istimewa 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 hak istimewa Anda dari pengguna standar ke administrator. Anda dapat melakukan ini saat memulai aplikasi dengan mengeklik kanan ikon aplikasi dan menunjukkan bahwa Anda ingin menjalankan sebagai administrator.

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

Create sumber peristiwa baru selama penginstalan aplikasi Anda. Ini memungkinkan waktu bagi sistem operasi untuk merefresh 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 menggunakan EventLogInstaller, atau menggunakan CreateEventSource metode . Anda harus memiliki hak administratif pada komputer untuk membuat sumber kejadian baru.

Anda dapat membuat sumber kejadian untuk log peristiwa yang sudah ada atau log peristiwa baru. Saat Anda membuat sumber baru untuk log peristiwa baru, sistem mendaftarkan sumber untuk log tersebut, tetapi log tidak dibuat sampai entri pertama ditulis ke dalamnya.

Sistem operasi menyimpan log peristiwa sebagai file. Ketika Anda menggunakan EventLogInstaller atau CreateEventSource untuk membuat log kejadian baru, file terkait disimpan di direktori %SystemRoot%\System32\Config pada komputer yang ditentukan. Nama file diatur dengan menambahkan 8 karakter Log pertama properti dengan ekstensi nama file ".evt".

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.

Anda dapat mendaftarkan sumber peristiwa dengan file sumber daya yang dilokalkan untuk kategori peristiwa dan string pesan Anda. Aplikasi Anda dapat menulis entri log peristiwa menggunakan pengidentifikasi sumber daya, daripada menentukan string aktual. Pemantau Peristiwa menggunakan pengidentifikasi sumber daya untuk menemukan dan menampilkan string yang sesuai dari file sumber daya yang dilokalkan berdasarkan pengaturan bahasa saat ini. Anda dapat mendaftarkan file terpisah untuk kategori peristiwa, pesan, dan string penyisipan parameter, atau Anda dapat mendaftarkan file sumber daya yang sama untuk ketiga jenis string. CategoryCountGunakan properti , CategoryResourceFile, MessageResourceFile, dan ParameterResourceFile untuk mengonfigurasi sumber untuk menulis entri yang dilokalkan ke log peristiwa. Jika aplikasi Anda menulis nilai string langsung ke log peristiwa, Anda tidak perlu mengatur properti ini.

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.

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 daripada menghapus sumber yang ada.

Catatan

Jika sumber dikonfigurasi untuk log peristiwa, dan Anda mengonfigurasi ulang untuk log peristiwa lain, Anda harus memulai ulang komputer agar perubahan diterapkan.

Lihat juga

Berlaku untuk

CreateEventSource(String, String)

Sumber:
EventLog.cs
Sumber:
EventLog.cs
Sumber:
EventLog.cs

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.

public:
 static void CreateEventSource(System::String ^ source, System::String ^ logName);
public static void CreateEventSource (string source, string logName);
static member CreateEventSource : string * string -> unit
Public Shared Sub CreateEventSource (source As String, logName As String)

Parameter

source
String

Nama sumber tempat aplikasi terdaftar di komputer lokal.

logName
String

Nama log tempat entri sumber ditulis. Nilai yang mungkin termasuk Aplikasi, Sistem, atau log peristiwa kustom.

Pengecualian

source adalah string kosong ("") atau null.

-atau-

logName bukan nama log peristiwa yang valid. Nama log peristiwa harus terdiri dari karakter yang dapat dicetak, dan tidak dapat menyertakan karakter '*', '?', atau '\'.

-atau-

logName tidak valid untuk pembuatan log pengguna. Nama log peristiwa AppEvent, SysEvent, dan SecEvent disediakan untuk penggunaan sistem.

-atau-

Nama log cocok dengan nama sumber peristiwa yang ada.

-atau-

Nama sumber menghasilkan jalur kunci registri yang lebih panjang dari 254 karakter.

-atau-

8 karakter pertama cocok logName dengan 8 karakter pertama dari nama log peristiwa yang ada.

-atau-

Sumber tidak dapat didaftarkan karena sudah ada di komputer lokal.

-atau-

Nama sumber cocok dengan nama log peristiwa yang ada.

Kunci registri untuk log kejadian tidak dapat dibuka pada komputer lokal.

Contoh

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

#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

Gunakan kelebihan beban ini untuk membuat log kustom atau untuk membuat dan mendaftarkan Source ke log yang ada di komputer lokal.

Jika logName adalah null atau string kosong ("") saat Anda memanggil CreateEventSource, log default ke log Aplikasi. Jika log tidak ada di komputer lokal, sistem membuat log kustom dan mendaftarkan aplikasi Anda sebagai Source untuk log tersebut.

Catatan

Untuk membuat sumber kejadian di Windows Vista dan yang lebih baru atau Windows Server 2003, Anda harus memiliki hak istimewa administratif.

Alasan untuk persyaratan ini adalah bahwa semua log peristiwa, termasuk keamanan, harus dicari untuk menentukan apakah sumber peristiwa unik. Dimulai dengan Windows Vista, pengguna tidak memiliki izin untuk mengakses log keamanan; oleh karena itu, dilemparkan SecurityException .

Di Windows Vista dan yang lebih baru, Kontrol Akun Pengguna (User Account Control atau UAC) menentukan hak istimewa 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 hak istimewa Anda dari pengguna standar ke administrator. Anda dapat melakukan ini saat memulai aplikasi dengan mengeklik kanan ikon aplikasi dan menunjukkan bahwa Anda ingin menjalankan sebagai administrator.

Anda hanya perlu membuat sumber peristiwa jika Anda menulis ke log peristiwa. Sebelum menulis entri ke log peristiwa, Anda harus mendaftarkan sumber peristiwa dengan log peristiwa sebagai sumber peristiwa yang valid. Saat Anda menulis entri log, sistem menggunakan Source untuk menemukan log yang sesuai untuk menempatkan entri Anda. Jika Anda membaca log peristiwa, Anda dapat menentukan Source, atau Log dan MachineName.

Catatan

Anda tidak diharuskan menentukan MachineName apakah Anda menyambungkan ke log pada komputer lokal. Jika Anda tidak menentukan MachineName kapan membaca dari log, komputer lokal (".") diasumsikan.

Gunakan WriteEvent 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 menggunakan EventLogInstaller, atau menggunakan CreateEventSource metode . Anda harus memiliki hak administratif pada komputer untuk membuat sumber kejadian baru.

Anda dapat membuat sumber peristiwa untuk log peristiwa yang sudah ada atau log peristiwa baru. Saat Anda membuat sumber baru untuk log peristiwa baru, sistem mendaftarkan sumber untuk log tersebut, tetapi log tidak dibuat sampai entri pertama ditulis ke dalamnya.

Sistem operasi menyimpan log peristiwa sebagai file. Ketika Anda menggunakan EventLogInstaller atau CreateEventSource untuk membuat log kejadian baru, file terkait disimpan di direktori %SystemRoot%\System32\Config pada komputer yang ditentukan. Nama file diatur dengan menambahkan 8 karakter Log pertama properti dengan ekstensi nama file ".evt".

Sumbernya harus unik di komputer lokal; nama sumber baru tidak dapat cocok dengan nama sumber yang ada atau nama log peristiwa yang sudah ada. 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.

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.

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 daripada menghapus sumber yang ada.

Catatan

Jika sumber telah dipetakan ke log dan Anda memetakan ulang ke log baru, Anda harus memulai ulang komputer agar perubahan diterapkan.

Lihat juga

Berlaku untuk

CreateEventSource(String, String, String)

Sumber:
EventLog.cs
Sumber:
EventLog.cs
Sumber:
EventLog.cs

Perhatian

This method has been deprecated. Please use System.Diagnostics.EventLog.CreateEventSource(EventSourceCreationData sourceData) instead. http://go.microsoft.com/fwlink/?linkid=14202

Perhatian

This method has been deprecated. Please use System.Diagnostics.EventLog.CreateEventSource(EventSourceCreationData sourceData) instead. https://go.microsoft.com/fwlink/?linkid=14202

Perhatian

EventLog.CreateEventSource has been deprecated. Use System.Diagnostics.EventLog.CreateEventSource(EventSourceCreationData sourceData) instead.

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.

public:
 static void CreateEventSource(System::String ^ source, System::String ^ logName, System::String ^ machineName);
[System.Obsolete("This method has been deprecated.  Please use System.Diagnostics.EventLog.CreateEventSource(EventSourceCreationData sourceData) instead.  http://go.microsoft.com/fwlink/?linkid=14202")]
public static void CreateEventSource (string source, string logName, string machineName);
[System.Obsolete("This method has been deprecated.  Please use System.Diagnostics.EventLog.CreateEventSource(EventSourceCreationData sourceData) instead.  https://go.microsoft.com/fwlink/?linkid=14202")]
public static void CreateEventSource (string source, string logName, string machineName);
[System.Obsolete("EventLog.CreateEventSource has been deprecated. Use System.Diagnostics.EventLog.CreateEventSource(EventSourceCreationData sourceData) instead.")]
public static void CreateEventSource (string source, string logName, string machineName);
public static void CreateEventSource (string source, string logName, string machineName);
[<System.Obsolete("This method has been deprecated.  Please use System.Diagnostics.EventLog.CreateEventSource(EventSourceCreationData sourceData) instead.  http://go.microsoft.com/fwlink/?linkid=14202")>]
static member CreateEventSource : string * string * string -> unit
[<System.Obsolete("This method has been deprecated.  Please use System.Diagnostics.EventLog.CreateEventSource(EventSourceCreationData sourceData) instead.  https://go.microsoft.com/fwlink/?linkid=14202")>]
static member CreateEventSource : string * string * string -> unit
[<System.Obsolete("EventLog.CreateEventSource has been deprecated. Use System.Diagnostics.EventLog.CreateEventSource(EventSourceCreationData sourceData) instead.")>]
static member CreateEventSource : string * string * string -> unit
static member CreateEventSource : string * string * string -> unit
Public Shared Sub CreateEventSource (source As String, logName As String, machineName As String)

Parameter

source
String

Sumber tempat aplikasi didaftarkan pada komputer yang ditentukan.

logName
String

Nama log tempat entri sumber ditulis. Nilai yang mungkin termasuk Aplikasi, Sistem, atau log peristiwa kustom. Jika Anda tidak menentukan nilai, logName default ke Aplikasi.

machineName
String

Nama komputer untuk mendaftarkan sumber kejadian ini dengan, atau "." untuk komputer lokal.

Atribut

Pengecualian

machineName Ini bukan nama komputer yang valid.

-atau-

source adalah string kosong ("") atau null.

-atau-

logName bukan nama log peristiwa yang valid. Nama log peristiwa harus terdiri dari karakter yang dapat dicetak, dan tidak dapat menyertakan karakter '*', '?', atau '\'.

-atau-

logName tidak valid untuk pembuatan log pengguna. Nama log peristiwa AppEvent, SysEvent, dan SecEvent disediakan untuk penggunaan sistem.

-atau-

Nama log cocok dengan nama sumber peristiwa yang ada.

-atau-

Nama sumber menghasilkan jalur kunci registri yang lebih panjang dari 254 karakter.

-atau-

8 karakter pertama cocok logName dengan 8 karakter pertama dari nama log peristiwa yang ada di komputer yang ditentukan.

-atau-

Sumber tidak dapat didaftarkan karena sudah ada pada komputer yang ditentukan.

-atau-

Nama sumber cocok dengan nama sumber peristiwa yang ada.

Kunci registri untuk log kejadian tidak dapat dibuka pada komputer yang ditentukan.

Contoh

Contoh berikut membuat sumber MySource di komputer MyServer, dan menulis entri ke log MyNewLogperistiwa .

#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", "MyServer" ) )
   {
      EventLog::CreateEventSource( "MySource", "MyNewLog", "MyServer" );
      Console::WriteLine( "CreatingEventSource" );
   }

   
   // 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." );
   Console::WriteLine( "Message written 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", "MyServer"))
        {
            // 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", "MyServer");
            Console.WriteLine("CreatingEventSource");
            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.");

        Console.WriteLine("Message written to event log.");
    }
}
Imports System.Diagnostics
Imports System.Threading

Class MySample
    Public Shared Sub Main()
        ' Create the source, if it does not already exist.
        If Not EventLog.SourceExists("MySource", "MyServer") Then
            EventLog.CreateEventSource("MySource", "MyNewLog", "MyServer")
            Console.WriteLine("CreatingEventSource")
        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.")
        
        Console.WriteLine("Message written to event log.")
    End Sub
End Class

Keterangan

Gunakan kelebihan beban ini untuk membuat log kustom atau untuk membuat dan mendaftarkan Source ke log yang ada pada komputer yang ditentukan.

Jika logName adalah null atau string kosong ("") saat Anda memanggil CreateEventSource, log default ke log Aplikasi. Jika log tidak ada di komputer yang ditentukan, sistem membuat log kustom dan mendaftarkan aplikasi Anda sebagai Source untuk log tersebut.

Anda hanya perlu membuat sumber peristiwa jika Anda menulis ke log peristiwa. Sebelum menulis entri ke log peristiwa, Anda harus mendaftarkan sumber peristiwa dengan log peristiwa sebagai sumber peristiwa yang valid. Saat Anda menulis entri log, sistem menggunakan Source untuk menemukan log yang sesuai untuk menempatkan entri Anda. Jika Anda membaca log peristiwa, Anda dapat menentukan Source, atau Log dan MachineName.

Catatan

Untuk membuat sumber kejadian di Windows Vista dan yang lebih baru atau Windows Server 2003, Anda harus memiliki hak istimewa administratif.

Alasan untuk persyaratan ini adalah bahwa semua log peristiwa, termasuk keamanan, harus dicari untuk menentukan apakah sumber peristiwa unik. Di Windows Vista dan yang lebih baru, pengguna tidak memiliki izin untuk mengakses log keamanan; oleh karena itu, dilemparkan SecurityException .

Di Windows Vista dan yang lebih baru, Kontrol Akun Pengguna (User Account Control atau UAC) menentukan hak istimewa 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 hak istimewa Anda dari pengguna standar ke administrator. Anda dapat melakukan ini saat memulai aplikasi dengan mengeklik kanan ikon aplikasi dan menunjukkan bahwa Anda ingin menjalankan sebagai administrator.

Gunakan WriteEvent 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 menggunakan EventLogInstaller, atau menggunakan CreateEventSource metode . Anda harus memiliki hak administratif pada komputer untuk membuat sumber kejadian baru.

Anda dapat membuat sumber kejadian untuk log peristiwa yang sudah ada atau log peristiwa baru. Saat Anda membuat sumber baru untuk log peristiwa baru, sistem mendaftarkan sumber untuk log tersebut, tetapi log tidak dibuat sampai entri pertama ditulis ke dalamnya.

Sistem operasi menyimpan log peristiwa sebagai file. Ketika Anda menggunakan EventLogInstaller atau CreateEventSource untuk membuat log kejadian baru, file terkait disimpan di direktori %SystemRoot%\System32\Config pada komputer yang ditentukan. Nama file diatur dengan menambahkan 8 karakter Log pertama properti dengan ekstensi nama file ".evt".

Sumber harus unik di komputer lokal; nama sumber baru tidak dapat cocok dengan nama sumber yang ada atau nama log peristiwa yang sudah ada. 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.

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.

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 daripada menghapus sumber yang ada.

Catatan

Jika sumber telah dipetakan ke log dan Anda memetakan ulang ke log baru, Anda harus memulai ulang komputer agar perubahan diterapkan.

Lihat juga

Berlaku untuk