EventSourceCreationData(String, String) Oluşturucu
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Belirtilen olay kaynağı ve olay günlüğü adıyla sınıfının yeni bir örneğini EventSourceCreationData başlatır.
public:
EventSourceCreationData(System::String ^ source, System::String ^ logName);
public EventSourceCreationData (string source, string logName);
new System.Diagnostics.EventSourceCreationData : string * string -> System.Diagnostics.EventSourceCreationData
Public Sub New (source As String, logName As String)
Parametreler
- source
- String
Giriş kaynağı olarak olay günlüğüne kaydedilecek ad.
- logName
- String
Kaynaktan girişlerin yazıldığı günlüğün adı.
Örnekler
Aşağıdaki kod örneği adlı SampleApplicationSource
olay kaynağının yerel bilgisayarda kayıtlı olup olmadığını belirler. Olay kaynağı yoksa, örnek kaynak için ileti kaynak dosyasını ayarlar ve yeni olay kaynağını oluşturur. Son olarak, kod örneği içindeki kaynak tanımlayıcı değerini ve içindeki DisplayNameMsgId
kaynak dosyası yolunu messageFile
kullanarak olay günlüğü için yerelleştirilmiş görünen adı ayarlar.
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
Kod örneği, kaynak kitaplığı EventLogMsgs.dll yerleşik olarak aşağıdaki ileti metin dosyasını kullanır. İleti metin dosyası, ileti kaynak dosyasının oluşturulduğu kaynaktır. İleti metin dosyası, kategori, olay iletisi ve parametre ekleme dizeleri için kaynak tanımlayıcılarını ve metni tanımlar.
; // 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
.
Açıklamalar
Bir olay günlüğüne girdi yazmak için önce olay günlüğü için bir olay kaynağı oluşturmanız gerekir. Yeni bir kaynak kaydetmek için bir EventSourceCreationData örneği başlatın, uygulamanızın örnek özelliklerini yapılandırın ve yöntemini çağırın EventLog.CreateEventSource(EventSourceCreationData) . Kaynak kaydedildikten sonra, veya WriteEntry yöntemlerini kullanarak WriteEvent kaynaktan girdi yazabilirsiniz.
Olay kaynağınızı, olay kategoriniz ve ileti dizeleriniz için yerelleştirilmiş kaynaklara kaydedebilirsiniz. Uygulamanız gerçek dizeyi belirtmek yerine kaynak tanımlayıcılarını kullanarak olay günlüğü girdileri yazabilir. Olay Görüntüleyicisi, geçerli dil ayarlarına göre yerelleştirilmiş kaynak dosyasından karşılık gelen dizeyi bulmak ve görüntülemek için kaynak tanımlayıcısını kullanır. Olay kategorileri, iletiler ve parametre ekleme dizeleri için ayrı bir dosya kaydedebilir veya aynı kaynak dosyasını üç dize türü için de kaydedebilirsiniz. CategoryCountKaynağı olay günlüğüne yerelleştirilmiş girdiler yazacak şekilde yapılandırmak için , CategoryResourceFile, MessageResourceFileve ParameterResourceFile özelliklerini kullanın. Uygulamanız dize değerlerini doğrudan olay günlüğüne yazıyorsa, bu özellikleri ayarlamanız gerekmez.
Kaynak, yerelleştirilmiş girdiler yazmak veya doğrudan dizeler yazmak için yapılandırılmalıdır. Uygulamanız hem kaynak tanımlayıcılarını hem de dize değerlerini kullanarak girdi yazıyorsa, iki ayrı kaynağı kaydetmeniz gerekir. Örneğin, kaynak dosyalarıyla bir kaynak yapılandırın ve ardından olay günlüğüne kaynak tanımlayıcılarını kullanarak girdi yazmak için yönteminde bu kaynağı WriteEvent kullanın. Ardından kaynak dosyaları olmadan farklı bir kaynak oluşturun ve dizeleri doğrudan olay günlüğüne yazmak için yönteminde WriteEntry bu kaynağı kullanın.
Aşağıdaki tabloda bir EventSourceCreationDataiçin ilk özellik değerleri gösterilmektedir.
Özellik | İlk Değer |
---|---|
Source | source parametresi. |
LogName | logName parametresi. |
MachineName | Yerel bilgisayar ("."). |
CategoryCount | Sıfır |
CategoryResourceFile | null (Nothing Visual Basic'te). |
MessageResourceFile | null (Nothing Visual Basic'te). |
ParameterResourceFile | null (Nothing Visual Basic'te). |