EventSourceCreationData Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Az eseménynapló-forrás helyi számítógépen vagy távoli számítógépen történő létrehozásához használt konfigurációs beállításokat jelöli.
public ref class EventSourceCreationData
public class EventSourceCreationData
type EventSourceCreationData = class
Public Class EventSourceCreationData
- Öröklődés
-
EventSourceCreationData
Példák
Az alábbi példakód parancssori argumentumokból állítja be az eseményforrás konfigurációs tulajdonságait. A bemeneti argumentumok megadják az eseményforrás nevét, az eseménynapló nevét, a számítógép nevét és az eseményüzenet erőforrásfájlját. A példakód ellenőrzi, hogy a forrás nem ütközik-e egy meglévő eseményforrással, majd létrehozza az új eseményforrást a megadott eseménynaplóhoz.
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
Megjegyzések
EventSourceCreationData Az osztály használatával konfigurálhat egy új forrást a honosított bejegyzések eseménynaplóba való írásához. Nem szükséges ezt az osztályt használni az eseménynaplóból való olvasáshoz.
Ez az osztály egy új eseményforrás és a hozzá tartozó eseménynapló konfigurációs beállításait határozza meg. A társított eseménynapló lehet a helyi számítógépen vagy egy távoli számítógépen. Ha új forrást szeretne létrehozni egy új vagy meglévő eseménynaplóhoz a helyi számítógépen, állítsa be a metódus és a LogName tulajdonságokat, és hívja meg a metódust SourceEventSourceCreationData.EventLog.CreateEventSource(EventSourceCreationData) Ez a metódus létrehozza a tulajdonságban Source megadott eseményforrást, és regisztrálja a megadott eseménynaplóban LogName. Ez a viselkedés hasonló ahhoz, mint amikor az EventLogInstaller osztály egy eseményforrást regisztrál egy eseménynaplóhoz.
WriteEvent A metódusokkal eseményeket WriteEntry írhat egy eseménynaplóba. Események írásához meg kell adnia egy eseményforrást; az első bejegyzés forrással való írása előtt létre kell hoznia és konfigurálnia kell az eseményforrást.
Hozza létre az új eseményforrást az alkalmazás telepítése során. Ez lehetővé teszi, hogy az operációs rendszer frissítse a regisztrált eseményforrások listáját és konfigurációit. Ha az operációs rendszer nem frissítette az eseményforrások listáját, és egy eseményt próbál meg írni az új forrással, az írási művelet sikertelen lesz. Új forrást konfigurálhat egy EventLogInstaller, vagy a CreateEventSource metódus használatával. Új eseményforrás létrehozásához rendszergazdai jogosultságokkal kell rendelkeznie a számítógépen.
Létrehozhat egy eseményforrást egy meglévő eseménynaplóhoz vagy egy új eseménynaplóhoz. Amikor új forrást hoz létre egy új eseménynaplóhoz, a rendszer regisztrálja a napló forrását, de a napló csak az első bejegyzés megírásáig jön létre.
Minden forrás egyszerre csak egy eseménynaplóba tud írni; az alkalmazás azonban több forrásból is írhat több eseménynaplóba. Előfordulhat például, hogy az alkalmazásnak több, különböző eseménynaplókhoz vagy különböző erőforrásfájlokhoz konfigurált forrásra van szüksége.
Egy meglévő forrás konfigurációs adatainak módosításához törölnie kell a forrást, majd létre kell hoznia az új konfigurációval. Ha más alkalmazások vagy összetevők a meglévő forrást használják, a meglévő forrás törlése helyett hozzon létre egy új forrást a frissített konfigurációval.
Az eseményforrást az eseménykategória és az üzenetsztringek honosított erőforrásaival regisztrálhatja. Az alkalmazás erőforrás-azonosítók használatával írhat eseménynapló-bejegyzéseket a tényleges sztring megadása helyett. A eseménymegtekintő az erőforrás-azonosítót használja a honosított erőforrásfájl megfelelő sztringjének megkereséséhez és megjelenítéséhez az aktuális nyelvi beállítások alapján. Az eseménykategóriákhoz, üzenetekhez és paraméterbeszúrási sztringekhez külön fájlt is regisztrálhat, vagy mindhárom sztringtípushoz regisztrálhatja ugyanazt az erőforrásfájlt. CategoryCountA , CategoryResourceFile, MessageResourceFileés ParameterResourceFile tulajdonságok használatával konfigurálja a forrást, hogy honosított bejegyzéseket írjon az eseménynaplóba. Ha az alkalmazás sztringértékeket ír közvetlenül az eseménynaplóba, nem kell ezeket a tulajdonságokat beállítania.
A forrást honosított bejegyzések írására vagy közvetlen sztringek írására kell konfigurálni. A WriteEntry metódus közvetlenül az eseménynaplóba írja a megadott sztringet, nem használ honosítható üzenet erőforrásfájlt. A metódussal WriteEvent eseményeket írhat egy honosított üzeneterőforrás-fájllal.
Ha az alkalmazás erőforrás-azonosítók és sztringértékek használatával is ír bejegyzéseket, két különálló forrást kell regisztrálnia. Konfiguráljon például egy forrást erőforrásfájlokkal, majd használja ezt a forrást a WriteEvent metódusban bejegyzések írásához erőforrás-azonosítók használatával az eseménynaplóba. Ezután hozzon létre egy másik forrást erőforrásfájlok nélkül, és használja ezt a forrást a WriteEntry metódusban, hogy sztringeket írjon közvetlenül az eseménynaplóba ezzel a forrással.
Konstruktorok
| Name | Description |
|---|---|
| EventSourceCreationData(String, String) |
Inicializálja az EventSourceCreationData osztály új példányát egy megadott eseményforrás és eseménynapló nevével. |
Tulajdonságok
| Name | Description |
|---|---|
| CategoryCount |
Lekéri vagy beállítja a kategóriák számát a kategória erőforrásfájljában. |
| CategoryResourceFile |
Lekéri vagy beállítja annak az erőforrásfájlnak az elérési útját, amely a forrás kategóriasztringeit tartalmazza. |
| LogName |
Lekéri vagy beállítja annak az eseménynaplónak a nevét, amelyre a forrás bejegyzéseket ír. |
| MachineName |
Lekéri vagy beállítja annak a számítógépnek a nevét, amelyen regisztrálni szeretné az eseményforrást. |
| MessageResourceFile |
Lekéri vagy beállítja annak az üzenet-erőforrásfájlnak az elérési útját, amely a forráshoz tartozó üzenetformázási sztringeket tartalmazza. |
| ParameterResourceFile |
Lekéri vagy beállítja annak az erőforrásfájlnak az elérési útját, amely a forráshoz tartozó üzenetparaméter-sztringeket tartalmazza. |
| Source |
Lekéri vagy beállítja a nevet, hogy eseményforrásként regisztráljon az eseménynaplóban. |
Metódusok
| Name | Description |
|---|---|
| Equals(Object) |
Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal. (Öröklődés forrása Object) |
| GetHashCode() |
Ez az alapértelmezett kivonatoló függvény. (Öröklődés forrása Object) |
| GetType() |
Lekéri az Type aktuális példányt. (Öröklődés forrása Object) |
| MemberwiseClone() |
Az aktuális Objectpéldány sekély másolatát hozza létre. (Öröklődés forrása Object) |
| ToString() |
Az aktuális objektumot jelképező sztringet ad vissza. (Öröklődés forrása Object) |