EventSourceCreationData Osztály

Definíció

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)

A következőre érvényes:

Lásd még