Bagikan melalui


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 pada 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
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 dalam sourceData tidak valid.

-atau-

Nama sumber yang ditentukan dalam sourceDatanull.

-atau-

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

-atau-

Nama log yang ditentukan dalam sourceData tidak valid untuk pembuatan log pengguna. Nama log Peristiwa AppEvent, SysEvent, dan SecEvent dicadangkan 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 dalam sourceData tidak unik.

-atau-

Nama sumber yang ditentukan dalam sourceData sudah terdaftar.

-atau-

Nama sumber yang ditentukan dalam sourceData cocok dengan nama log peristiwa yang ada.

Kunci registri untuk log kejadian tidak dapat dibuka.

sourceData 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 mengatur 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 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. Jika properti LogName tidak diatur, sumber terdaftar untuk log peristiwa Aplikasi. Jika MachineName tidak diatur, sumber terdaftar di komputer lokal.

Nota

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; Karena itu, SecurityException dilemparkan.

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 mengklik 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 sumber.

Buat sumber peristiwa baru selama penginstalan aplikasi Anda. Ini memungkinkan waktu bagi sistem operasi untuk me-refresh daftar sumber peristiwa terdaftar dan konfigurasinya. Jika sistem operasi belum menyegarkan daftar sumber peristiwanya, dan Anda mencoba menulis peristiwa dengan sumber baru, operasi tulis akan gagal. Anda dapat mengonfigurasi sumber baru menggunakan EventLogInstaller, atau menggunakan metode CreateEventSource. 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 log tersebut.

Sistem operasi menyimpan log peristiwa sebagai file. Saat Anda menggunakan EventLogInstaller atau CreateEventSource untuk membuat log peristiwa baru, file terkait disimpan di direktori %SystemRoot%\System32\Config pada komputer yang ditentukan. Nama file diatur dengan menambahkan 8 karakter pertama properti Log 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. Penampil 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. Gunakan properti CategoryCount, 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 dalam metode WriteEvent untuk menulis entri menggunakan pengidentifikasi sumber daya ke log peristiwa. Kemudian buat sumber yang berbeda tanpa file sumber daya, dan gunakan sumber tersebut dalam metode WriteEntry 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.

Nota

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
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 pada 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 dicadangkan 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 logName cocok dengan 8 karakter pertama dari nama log peristiwa yang ada.

-atau-

Sumber tidak dapat didaftarkan karena sudah ada pada 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 peristiwa MyNewLog.

#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 logNamenull 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.

Nota

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; Karena itu, SecurityException dilemparkan.

Di Windows Vista dan yang lebih baru, 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 mengklik 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.

Nota

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

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 sumber.

Buat sumber peristiwa baru selama penginstalan aplikasi Anda. Ini memungkinkan waktu bagi sistem operasi untuk me-refresh daftar sumber peristiwa terdaftar dan konfigurasinya. Jika sistem operasi belum menyegarkan daftar sumber peristiwanya, dan Anda mencoba menulis peristiwa dengan sumber baru, operasi tulis akan gagal. Anda dapat mengonfigurasi sumber baru menggunakan EventLogInstaller, atau menggunakan metode CreateEventSource. 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 log tersebut.

Sistem operasi menyimpan log peristiwa sebagai file. Saat Anda menggunakan EventLogInstaller atau CreateEventSource untuk membuat log peristiwa baru, file terkait disimpan di direktori %SystemRoot%\System32\Config pada komputer yang ditentukan. Nama file diatur dengan menambahkan 8 karakter pertama properti Log 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 dalam metode WriteEvent untuk menulis entri menggunakan pengidentifikasi sumber daya ke log peristiwa. Kemudian buat sumber yang berbeda tanpa file sumber daya, dan gunakan sumber tersebut dalam metode WriteEntry 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.

Nota

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
Sumber:
EventLog.cs

Perhatian

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

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

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("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")]
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.")>]
static member CreateEventSource : string * string * string -> unit
static member CreateEventSource : string * string * string -> unit
[<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
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 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 dicadangkan 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 logName cocok dengan 8 karakter pertama dari nama log peristiwa yang ada pada 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 MySource sumber di komputer MyServer, dan menulis entri ke log peristiwa MyNewLog.

#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 logNamenull 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.

Nota

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. Di Windows Vista dan yang lebih baru, pengguna tidak memiliki izin untuk mengakses log keamanan; Karena itu, SecurityException dilemparkan.

Di Windows Vista dan yang lebih baru, 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 mengklik 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 sumber.

Buat sumber peristiwa baru selama penginstalan aplikasi Anda. Ini memungkinkan waktu bagi sistem operasi untuk me-refresh daftar sumber peristiwa terdaftar dan konfigurasinya. Jika sistem operasi belum menyegarkan daftar sumber peristiwanya, dan Anda mencoba menulis peristiwa dengan sumber baru, operasi tulis akan gagal. Anda dapat mengonfigurasi sumber baru menggunakan EventLogInstaller, atau menggunakan metode CreateEventSource. 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 log tersebut.

Sistem operasi menyimpan log peristiwa sebagai file. Saat Anda menggunakan EventLogInstaller atau CreateEventSource untuk membuat log peristiwa baru, file terkait disimpan di direktori %SystemRoot%\System32\Config pada komputer yang ditentukan. Nama file diatur dengan menambahkan 8 karakter pertama properti Log 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 dalam metode WriteEvent untuk menulis entri menggunakan pengidentifikasi sumber daya ke log peristiwa. Kemudian buat sumber yang berbeda tanpa file sumber daya, dan gunakan sumber tersebut dalam metode WriteEntry 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.

Nota

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