EventSourceCreationData Klass
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.
Representerar de konfigurationsinställningar som används för att skapa en händelseloggkälla på den lokala datorn eller en fjärrdator.
public ref class EventSourceCreationData
public class EventSourceCreationData
type EventSourceCreationData = class
Public Class EventSourceCreationData
- Arv
-
EventSourceCreationData
Exempel
I följande kodexempel anges konfigurationsegenskaperna för en händelsekälla från kommandoradsargument. Indataargumenten anger händelsekällans namn, händelseloggnamn, datornamn och resursfil för händelsemeddelande. Kodexemplet verifierar att källan inte står i konflikt med en befintlig händelsekälla och skapar sedan den nya händelsekällan för den angivna händelseloggen.
using System;
using System.Globalization;
using System.Diagnostics;
namespace EventLogSamples
{
class CreateSourceSample
{
[STAThread]
static void Main(string[] args)
{
EventSourceCreationData mySourceData = new EventSourceCreationData("", "");
bool registerSource = true;
// Process input parameters.
if (args.Length > 0)
{
// Require at least the source name.
mySourceData.Source = args[0];
if (args.Length > 1)
{
mySourceData.LogName = args[1];
}
if (args.Length > 2)
{
mySourceData.MachineName = args[2];
}
if ((args.Length > 3) && (args[3].Length > 0))
{
mySourceData.MessageResourceFile = args[3];
}
}
else
{
// Display a syntax help message.
Console.WriteLine("Input:");
Console.WriteLine(" source [event log] [machine name] [resource file]");
registerSource = false;
}
// Set defaults for parameters missing input.
if (mySourceData.MachineName.Length == 0)
{
// Default to the local computer.
mySourceData.MachineName = ".";
}
if (mySourceData.LogName.Length == 0)
{
// Default to the Application log.
mySourceData.LogName = "Application";
}
// Determine if the source exists on the specified computer.
if (!EventLog.SourceExists(mySourceData.Source,
mySourceData.MachineName))
{
// The source does not exist.
// Verify that the message file exists
// and the event log is local.
if ((mySourceData.MessageResourceFile != null) &&
(mySourceData.MessageResourceFile.Length > 0))
{
if (mySourceData.MachineName == ".")
{
if (!System.IO.File.Exists(mySourceData.MessageResourceFile))
{
Console.WriteLine("File {0} not found - message file not set for source.",
mySourceData.MessageResourceFile);
registerSource = false;
}
}
else
{
// For simplicity, do not allow setting the message
// file for a remote event log. To set the message
// for a remote event log, and for source registration,
// the file path should be specified with system-wide
// environment variables that are valid on the remote
// computer, such as
// "%SystemRoot%\system32\myresource.dll".
Console.WriteLine("Message resource file ignored for remote event log.");
registerSource = false;
}
}
}
else
{
// Do not register the source, it already exists.
registerSource = false;
// Get the event log corresponding to the existing source.
string sourceLog;
sourceLog = EventLog.LogNameFromSourceName(mySourceData.Source,
mySourceData.MachineName);
// Determine if the event source is registered for the
// specified log.
if (sourceLog.ToUpper(CultureInfo.InvariantCulture) != mySourceData.LogName.ToUpper(CultureInfo.InvariantCulture))
{
// An existing source is registered
// to write to a different event log.
Console.WriteLine("Warning: source {0} is already registered to write to event log {1}",
mySourceData.Source, sourceLog);
}
else
{
// The source is already registered
// to write to the specified event log.
Console.WriteLine("Source {0} already registered to write to event log {1}",
mySourceData.Source, sourceLog);
}
}
if (registerSource)
{
// Register the new event source for the specified event log.
Console.WriteLine("Registering new source {0} for event log {1}.",
mySourceData.Source, mySourceData.LogName);
EventLog.CreateEventSource(mySourceData);
Console.WriteLine("Event source was registered successfully!");
}
}
}
}
Imports System.Globalization
Imports System.Diagnostics
Namespace EventLogSamples
Class CreateSourceSample
Public Shared Sub Main(ByVal args() As String)
Dim mySourceData As EventSourceCreationData = new EventSourceCreationData("", "")
Dim registerSource As Boolean = True
' Process input parameters.
If args.Length > 0
' Require at least the source name.
mySourceData.Source = args(0)
If args.Length > 1
mySourceData.LogName = args(1)
End If
If args.Length > 2
mySourceData.MachineName = args(2)
End If
If args.Length > 3 AndAlso args(3).Length > 0
mySourceData.MessageResourceFile = args(3)
End If
Else
' Display a syntax help message.
Console.WriteLine("Input:")
Console.WriteLine(" source [event log] [machine name] [resource file]")
registerSource = False
End If
' Set defaults for parameters missing input.
If mySourceData.MachineName.Length = 0
' Default to the local computer.
mySourceData.MachineName = "."
End If
If mySourceData.LogName.Length = 0
' Default to the Application log.
mySourceData.LogName = "Application"
End If
' Determine if the source exists on the specified computer.
If Not EventLog.SourceExists(mySourceData.Source, _
mySourceData.MachineName)
' The source does not exist.
' Verify that the message file exists
' and the event log is local.
If mySourceData.MessageResourceFile <> Nothing AndAlso _
mySourceData.MessageResourceFile.Length > 0
If mySourceData.MachineName = "."
If Not System.IO.File.Exists(mySourceData.MessageResourceFile)
Console.WriteLine("File {0} not found - message file not set for source.", _
mySourceData.MessageResourceFile)
registerSource = False
End If
Else
' For simplicity, do not allow setting the message
' file for a remote event log. To set the message
' for a remote event log, and for source registration,
' the file path should be specified with system-wide
' environment variables that are valid on the remote
' computer, such as
' "%SystemRoot%\system32\myresource.dll".
Console.WriteLine("Message resource file ignored for remote event log.")
registerSource = False
End If
End If
Else
' Do not register the source, it already exists.
registerSource = False
' Get the event log corresponding to the existing source.
Dim sourceLog As string
sourceLog = EventLog.LogNameFromSourceName(mySourceData.Source, _
mySourceData.MachineName)
' Determine if the event source is registered for the
' specified log.
If sourceLog.ToUpper(CultureInfo.InvariantCulture) <> mySourceData.LogName.ToUpper(CultureInfo.InvariantCulture)
' An existing source is registered
' to write to a different event log.
Console.WriteLine("Warning: source {0} is already registered to write to event log {1}", _
mySourceData.Source, sourceLog)
Else
' The source is already registered
' to write to the specified event log.
Console.WriteLine("Source {0} already registered to write to event log {1}", _
mySourceData.Source, sourceLog)
End If
End If
If registerSource
' Register the new event source for the specified event log.
Console.WriteLine("Registering new source {0} for event log {1}.", _
mySourceData.Source, mySourceData.LogName)
EventLog.CreateEventSource(mySourceData)
Console.WriteLine("Event source was registered successfully!")
End If
End Sub
End Class
End Namespace 'EventLogSamples
Kommentarer
EventSourceCreationData Använd klassen för att konfigurera en ny källa för att skriva lokaliserade poster till en händelselogg. Du behöver inte använda den här klassen för att läsa från en händelselogg.
Den här klassen definierar konfigurationsinställningarna för en ny händelsekälla och dess associerade händelselogg. Den associerade händelseloggen kan finnas på den lokala datorn eller på en fjärrdator. Om du vill skapa en ny källa för en ny eller befintlig händelselogg på den lokala datorn anger du LogName egenskaperna och Source för en EventSourceCreationData och anropar EventLog.CreateEventSource(EventSourceCreationData) metoden. Den här metoden skapar den händelsekälla som du anger i Source egenskapen och registrerar den för händelseloggen som anges i LogName. Det här beteendet liknar att använda EventLogInstaller klassen för att registrera en händelsekälla för en händelselogg.
WriteEvent Använd metoderna och WriteEntry för att skriva händelser till en händelselogg. Du måste ange en händelsekälla för att skriva händelser. du måste skapa och konfigurera händelsekällan innan du skriver den första posten med källan.
Skapa den nya händelsekällan under installationen av programmet. Detta gör det möjligt för operativsystemet att uppdatera sin lista över registrerade händelsekällor och deras konfigurationer. Om operativsystemet inte har uppdaterat sin lista över händelsekällor och du försöker skriva en händelse med den nya källan misslyckas skrivåtgärden. Du kan konfigurera en ny källa med hjälp av en EventLogInstaller, eller med hjälp av CreateEventSource metoden . Du måste ha administratörsbehörighet på datorn för att kunna skapa en ny händelsekälla.
Du kan skapa en händelsekälla för en befintlig händelselogg eller en ny händelselogg. När du skapar en ny källa för en ny händelselogg registrerar systemet källan för loggen, men loggen skapas inte förrän den första posten har skrivits till den.
Varje källa kan bara skriva till en händelselogg i taget. Ditt program kan dock använda flera källor för att skriva till flera händelseloggar. Ditt program kan till exempel behöva flera källor som konfigurerats för olika händelseloggar eller olika resursfiler.
Om du vill ändra konfigurationsinformationen för en befintlig källa måste du ta bort källan och sedan skapa den med den nya konfigurationen. Om andra program eller komponenter använder den befintliga källan skapar du en ny källa med den uppdaterade konfigurationen i stället för att ta bort den befintliga källan.
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. Metoden skriver den angivna strängen direkt till händelseloggen. Den WriteEntry använder inte en lokal meddelanderesursfil. WriteEvent Använd metoden för att skriva händelser med hjälp av en lokaliserad meddelanderesursfil.
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 med den källan.
Konstruktorer
| Name | Description |
|---|---|
| EventSourceCreationData(String, String) |
Initierar en ny instans av EventSourceCreationData klassen med en angiven händelsekälla och händelseloggnamn. |
Egenskaper
| Name | Description |
|---|---|
| CategoryCount |
Hämtar eller anger antalet kategorier i kategoriresursfilen. |
| CategoryResourceFile |
Hämtar eller anger sökvägen till resursfilen som innehåller kategoristrängar för källan. |
| LogName |
Hämtar eller anger namnet på händelseloggen som källan skriver poster till. |
| MachineName |
Hämtar eller anger namnet på den dator där händelsekällan ska registreras. |
| MessageResourceFile |
Hämtar eller anger sökvägen till den meddelanderesursfil som innehåller meddelandeformateringssträngar för källan. |
| ParameterResourceFile |
Hämtar eller anger sökvägen till resursfilen som innehåller meddelandeparametersträngar för källan. |
| Source |
Hämtar eller anger namnet som ska registreras med händelseloggen som händelsekälla. |
Metoder
| Name | Description |
|---|---|
| Equals(Object) |
Avgör om det angivna objektet är lika med det aktuella objektet. (Ärvd från Object) |
| GetHashCode() |
Fungerar som standard-hash-funktion. (Ärvd från Object) |
| GetType() |
Hämtar den aktuella instansen Type . (Ärvd från Object) |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| ToString() |
Returnerar en sträng som representerar det aktuella objektet. (Ärvd från Object) |