EventSourceCreationData(String, String) Konstruktor
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Initierar en ny instans av EventSourceCreationData klassen med en angiven händelsekälla och händelseloggnamn.
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)
Parametrar
- source
- String
Namnet som ska registreras med händelseloggen som källa för poster.
- logName
- String
Namnet på loggen som poster från källan skrivs till.
Exempel
I följande kodexempel avgörs om händelsekällan med namnet SampleApplicationSource är registrerad på den lokala datorn. Om händelsekällan inte finns anger exemplet meddelanderesursfilen för källan och skapar den nya händelsekällan. Slutligen anger kodexemplet det lokaliserade visningsnamnet för händelseloggen med hjälp av resursidentifierarvärdet i DisplayNameMsgId och resursfilens sökväg i messageFile.
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
Kodexemplet använder följande meddelandetextfil som är inbyggd i resursbiblioteket EventLogMsgs.dll. En meddelandetextfil är källan från vilken meddelanderesursfilen skapas. Meddelandetextfilen definierar resursidentifierarna och texten för strängarna kategori, händelsemeddelande och parameterinfogning.
; // 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
.
Kommentarer
Om du vill skriva poster till en händelselogg måste du först skapa en händelsekälla för händelseloggen. Om du vill registrera en ny källa initierar du en EventSourceCreationData instans, konfigurerar instansegenskaperna för ditt program och anropar EventLog.CreateEventSource(EventSourceCreationData) metoden. När källan har registrerats kan du skriva poster från källan med hjälp av WriteEvent metoderna eller WriteEntry .
Du kan registrera händelsekällan med lokaliserade resurser för din händelsekategori och meddelandesträngar. Programmet kan skriva händelseloggposter med hjälp av resursidentifierare i stället för att ange den faktiska strängen. Zobrazovač udalostí använder resursidentifieraren för att hitta och visa motsvarande sträng från den lokaliserade resursfilen baserat på aktuella språkinställningar. Du kan registrera en separat fil för händelsekategorier, meddelanden och parameterinfogningssträngar, eller så kan du registrera samma resursfil för alla tre typerna av strängar. CategoryCountAnvänd egenskaperna , CategoryResourceFile, MessageResourceFileoch ParameterResourceFile för att konfigurera källan för att skriva lokaliserade poster till händelseloggen. Om ditt program skriver strängvärden direkt till händelseloggen behöver du inte ange dessa egenskaper.
Källan måste konfigureras antingen för att skriva lokaliserade poster eller för att skriva direktsträngar. Om programmet skriver poster med både resursidentifierare och strängvärden måste du registrera två separata källor. Du kan till exempel konfigurera en källa med resursfiler och sedan använda källan WriteEvent i metoden för att skriva poster med hjälp av resursidentifierare till händelseloggen. Skapa sedan en annan källa utan resursfiler och använd den WriteEntry källan i metoden för att skriva strängar direkt till händelseloggen.
I följande tabell visas inledande egenskapsvärden för en EventSourceCreationData.
| Property | Initialt värde |
|---|---|
| Source | Parametern source . |
| LogName | Parametern logName . |
| MachineName | Den lokala datorn ("."). |
| CategoryCount | Noll |
| CategoryResourceFile |
null (Nothing i Visual Basic). |
| MessageResourceFile |
null (Nothing i Visual Basic). |
| ParameterResourceFile |
null (Nothing i Visual Basic). |