EventSourceCreationData Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Představuje nastavení konfigurace použité k vytvoření zdroje protokolu událostí v místním počítači nebo vzdáleném počítači.
public ref class EventSourceCreationData
public class EventSourceCreationData
type EventSourceCreationData = class
Public Class EventSourceCreationData
- Dědičnost
-
EventSourceCreationData
Příklady
Následující příklad kódu nastaví vlastnosti konfigurace pro zdroj události z argumentů příkazového řádku. Vstupní argumenty určují název zdroje událostí, název protokolu událostí, název počítače a soubor prostředků zprávy události. Příklad kódu ověří, že zdroj není v konfliktu s existujícím zdrojem událostí, a pak vytvoří nový zdroj událostí pro zadaný protokol událostí.
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
Poznámky
EventSourceCreationData Pomocí třídy můžete nakonfigurovat nový zdroj pro zápis lokalizovaných položek do protokolu událostí. Tuto třídu není nutné použít ke čtení z protokolu událostí.
Tato třída definuje nastavení konfigurace pro nový zdroj událostí a jeho přidružený protokol událostí. Přidružený protokol událostí může být na místním nebo vzdáleném počítači. Pokud chcete vytvořit nový zdroj pro nový nebo existující protokol událostí v místním počítači, nastavte LogName a Source vlastnosti EventSourceCreationData metody a zavolejte metodu EventLog.CreateEventSource(EventSourceCreationData) . Tato metoda vytvoří zdroj události, který zadáte ve Source vlastnosti, a zaregistruje ho pro protokol událostí zadaný v LogName. Toto chování se podobá použití EventLogInstaller třídy k registraci zdroje událostí pro protokol událostí.
K zápisu WriteEvent událostí do protokolu událostí použijte metody a WriteEntry metody. Je nutné zadat zdroj událostí pro zápis událostí; Před zápisem první položky se zdrojem musíte vytvořit a nakonfigurovat zdroj událostí.
Během instalace aplikace vytvořte nový zdroj událostí. Díky tomu může operační systém aktualizovat seznam registrovaných zdrojů událostí a jejich konfigurací. Pokud operační systém neaktualizuje seznam zdrojů událostí a pokusíte se napsat událost s novým zdrojem, operace zápisu selže. Nový zdroj můžete nakonfigurovat pomocí metody EventLogInstallernebo metody CreateEventSource . Abyste mohli vytvořit nový zdroj událostí, musíte mít na počítači oprávnění správce.
Můžete vytvořit zdroj událostí pro existující protokol událostí nebo nový protokol událostí. Když vytvoříte nový zdroj pro nový protokol událostí, systém zaregistruje zdroj pro tento protokol, ale protokol se nevytvoří, dokud se do něj nezapíše první položka.
Každý zdroj může zapisovat pouze do jednoho protokolu událostí najednou; Aplikace ale může k zápisu do více protokolů událostí použít více zdrojů. Vaše aplikace může například potřebovat více zdrojů nakonfigurovaných pro různé protokoly událostí nebo různé soubory prostředků.
Pokud chcete změnit podrobnosti konfigurace existujícího zdroje, musíte zdroj odstranit a pak ho vytvořit pomocí nové konfigurace. Pokud existující zdroj používají jiné aplikace nebo komponenty, vytvořte nový zdroj s aktualizovanou konfigurací místo odstranění existujícího zdroje.
Zdroj událostí můžete zaregistrovat v lokalizovaných prostředcích pro kategorii událostí a řetězce zpráv. Aplikace může zapisovat položky protokolu událostí pomocí identifikátorů prostředků, a nikoli zadávat skutečný řetězec. Prohlížeč událostí používá identifikátor prostředku k vyhledání a zobrazení odpovídajícího řetězce z lokalizovaného souboru prostředků na základě aktuálního nastavení jazyka. Můžete zaregistrovat samostatný soubor pro kategorie událostí, zprávy a řetězce vložení parametrů nebo můžete zaregistrovat stejný soubor prostředků pro všechny tři typy řetězců. CategoryCountKe konfiguraci zdroje pro zápis lokalizovaných položek do protokolu událostí použijte příkazy , CategoryResourceFile, MessageResourceFilea ParameterResourceFile vlastnosti. Pokud vaše aplikace zapisuje řetězcové hodnoty přímo do protokolu událostí, nemusíte tyto vlastnosti nastavovat.
Zdroj musí být nakonfigurován buď pro zápis lokalizovaných položek, nebo pro zápis přímých řetězců. Metoda WriteEntry zapíše daný řetězec přímo do protokolu událostí; nepoužívá lokalizovatelný soubor prostředků zprávy. Metoda slouží k zápisu WriteEvent událostí pomocí lokalizovaného souboru prostředků zprávy.
Pokud vaše aplikace zapisuje položky pomocí identifikátorů prostředků i řetězcových hodnot, musíte zaregistrovat dva samostatné zdroje. Například nakonfigurujte jeden zdroj se soubory prostředků a pak tento zdroj v WriteEvent metodě použijte k zápisu položek pomocí identifikátorů prostředků do protokolu událostí. Pak vytvořte jiný zdroj bez souborů prostředků a použijte tento zdroj v WriteEntry metodě k zápisu řetězců přímo do protokolu událostí pomocí daného zdroje.
Konstruktory
| Name | Description |
|---|---|
| EventSourceCreationData(String, String) |
Inicializuje novou instanci EventSourceCreationData třídy se zadaným zdrojem událostí a názvem protokolu událostí. |
Vlastnosti
| Name | Description |
|---|---|
| CategoryCount |
Získá nebo nastaví počet kategorií v souboru prostředků kategorie. |
| CategoryResourceFile |
Získá nebo nastaví cestu k souboru prostředků, který obsahuje řetězce kategorií pro zdroj. |
| LogName |
Získá nebo nastaví název protokolu událostí, do kterého zdroj zapisuje položky. |
| MachineName |
Získá nebo nastaví název počítače, na kterém se má zaregistrovat zdroj události. |
| MessageResourceFile |
Získá nebo nastaví cestu k souboru prostředku zprávy, který obsahuje řetězce formátování zprávy pro zdroj. |
| ParameterResourceFile |
Získá nebo nastaví cestu k souboru prostředků, který obsahuje řetězce parametrů zprávy pro zdroj. |
| Source |
Získá nebo nastaví název pro registraci v protokolu událostí jako zdroj události. |
Metody
| Name | Description |
|---|---|
| Equals(Object) |
Určuje, zda je zadaný objekt roven aktuálnímu objektu. (Zděděno od Object) |
| GetHashCode() |
Slouží jako výchozí funkce hash. (Zděděno od Object) |
| GetType() |
Získá Type aktuální instance. (Zděděno od Object) |
| MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Object. (Zděděno od Object) |
| ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |