EventLog 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.
Interakciót biztosít Windows eseménynaplókkal.
public ref class EventLog : System::ComponentModel::Component, System::ComponentModel::ISupportInitialize
public class EventLog : System.ComponentModel.Component, System.ComponentModel.ISupportInitialize
type EventLog = class
inherit Component
interface ISupportInitialize
Public Class EventLog
Inherits Component
Implements ISupportInitialize
- Öröklődés
- Megvalósítás
Példák
Az alábbi példa létrehozza az eseményforrást MySource , ha még nem létezik, és egy bejegyzést ír az eseménynaplóba MyNewLog.
Note
Ezt az alkalmazást rendszergazdaként kell futtatnia.
using System;
using System.Diagnostics;
using System.Threading;
class MySample{
public static void Main(){
// Create the source, if it does not already exist.
if(!EventLog.SourceExists("MySource"))
{
//An event log source should not be created and immediately used.
//There is a latency time to enable the source, it should be created
//prior to executing the application that uses the source.
//Execute this sample a second time to use the new source.
EventLog.CreateEventSource("MySource", "MyNewLog");
Console.WriteLine("CreatedEventSource");
Console.WriteLine("Exiting, execute the application a second time to use the source.");
// The source is created. Exit the application to allow it to be registered.
return;
}
// Create an EventLog instance and assign its source.
EventLog myLog = new EventLog();
myLog.Source = "MySource";
// Write an informational entry to the event log.
myLog.WriteEntry("Writing to event log.");
}
}
Option Explicit
Option Strict
Imports System.Diagnostics
Imports System.Threading
Class MySample
Public Shared Sub Main()
If Not EventLog.SourceExists("MySource") Then
' Create the source, if it does not already exist.
' An event log source should not be created and immediately used.
' There is a latency time to enable the source, it should be created
' prior to executing the application that uses the source.
' Execute this sample a second time to use the new source.
EventLog.CreateEventSource("MySource", "MyNewLog")
Console.WriteLine("CreatingEventSource")
'The source is created. Exit the application to allow it to be registered.
Return
End If
' Create an EventLog instance and assign its source.
Dim myLog As New EventLog()
myLog.Source = "MySource"
' Write an informational entry to the event log.
myLog.WriteEntry("Writing to event log.")
End Sub
End Class
Megjegyzések
EventLog lehetővé teszi Windows eseménynaplók elérését vagy testreszabását, amelyek a fontos szoftveres vagy hardveres események adatait rögzítik. A meglévő EventLognaplókból olvashat, bejegyzéseket írhat naplókba, eseményforrásokat hozhat létre vagy törölhet, naplókat törölhet, és válaszolhat a naplóbejegyzésekre. Eseményforrás létrehozásakor új naplókat is létrehozhat.
Important
Ez a típus implementálja a IDisposable felületet. Ha befejezte a típus használatát, közvetlenül vagy közvetve kell megsemmisítenie. A típus közvetlen ártalmatlanításához hívja meg a Dispose metódust egy try/catch blokkban. Ha közvetve szeretné megsemmisíteni, használjon olyan nyelvi szerkezetet, mint a using (C#-ban) vagy Using (a Visual Basicben). További információ: "Az IDisposable-t megvalósító objektum használata" című szakasz a IDisposable felület témakörében.
Amellett, hogy hozzáférést biztosít az egyes eseménynaplókhoz és azok bejegyzéseihez, az EventLog osztály lehetővé teszi az összes eseménynapló gyűjteményének elérését. A tagok static segítségével törölheti a EventLog naplókat, lekérheti a naplólistákat, létrehozhat vagy törölhet egy forrást, vagy megállapíthatja, hogy egy számítógép már tartalmaz-e egy adott forrást.
Három alapértelmezett eseménynapló van: alkalmazás, rendszer és biztonság. A biztonsági napló írásvédett. Más telepített alkalmazások és szolgáltatások, például a Active Directory, további eseménynaplókkal is rendelkezhetnek.
Az osztály használatakor biztonsági szempontokat kell figyelembe venni EventLog . EventLog engedélyeket igényel EventLogPermission adott műveletekhez. Javasoljuk, hogy EventLogPermission ne kapjon részlegesen megbízható kódot. Soha ne adjon át eseménynapló-objektumot, beleértve EventLogEntryCollection az objektumokat is EventLogEntry , kevésbé megbízható kódnak. Ha például létrehoz egy EventLog objektumot, ír egy bejegyzést, majd átadja az EventLog objektumot egy részben megbízható kódnak, biztonsági problémát okozhat, mivel az eseménynaplóba való olvasás és írás képessége lehetővé teszi, hogy a kód olyan műveleteket hajtson végre, mint például eseménynapló-üzenetek küldése egy másik alkalmazás nevében.
Az Windows Vista kezdve a felhasználói fiókok felügyelete (UAC) határozza meg a felhasználó hitelesítő adatait. Ha Tagja a Beépített rendszergazdák csoportnak, két futásidejű hozzáférési jogkivonatot kap: egy standard felhasználói hozzáférési jogkivonatot és egy rendszergazdai hozzáférési jogkivonatot. Alapértelmezés szerint a szokásos felhasználói szerepkörben van. A biztonsági naplóhoz hozzáférő kód futtatásához először a hitelesítő adatokat a standard felhasználóról a rendszergazdára kell emelnie. Ezt az alkalmazás indításakor az alkalmazás helyi menüjének megnyitásával teheti meg (ha egeret használ, kattintson a jobb gombbal az alkalmazás ikonra), és jelezheti, hogy rendszergazdaként szeretne futni.
A EventLog használatával egyéni eseménynaplókat hozhat létre, amelyeket a kiszolgáló eseménymegtekintő keresztül tekinthet meg. A RegisterDisplayName metódussal megjelenítheti az eseménynapló honosított nevét a eseménymegtekintő. Ezzel a ModifyOverflowPolicy módszerrel konfigurálhatja az eseménynapló viselkedését, amikor eléri a maximális naplóméretet.
Az eseménynaplóból való olvasáshoz adja meg a napló nevét (Log tulajdonságát) és a kiszolgáló számítógépének nevét (MachineName az eseménynapló tulajdonságát). Ha nem adja meg a kiszolgáló számítógépének nevét, a rendszer feltételezi, hogy a helyi számítógép neve ".". Nem szükséges megadni az eseményforrást (Source tulajdonságot), mert a forrás csak a naplókba való íráshoz szükséges. A Entries tulajdonság automatikusan feltöltődik az eseménynapló bejegyzéslistájával.
Eseménynaplóba való íráshoz adjon meg vagy hozzon létre egy eseményforrást (Source tulajdonságot). Új eseményforrás létrehozásához rendszergazdai hitelesítő adatokkal kell rendelkeznie a számítógépen. Az eseményforrás érvényes bejegyzésforrásként regisztrálja az alkalmazást az eseménynaplóval. Az eseményforrással egyszerre csak egy naplóba írhat. A Source tulajdonság tetszőleges véletlenszerű sztring lehet, de a névnek különböznie kell a számítógép más forrásaitól. Az eseményforrás általában az alkalmazás vagy egy másik azonosító sztring neve. Ha duplikált Source értéket próbál létrehozni, kivételt okoz. Egyetlen eseménynapló azonban több forráshoz is társítható.
Ha a példányhoz EventLog társított eseménynapló eseményforrása nem létezik, létrejön egy új eseményforrás. Ha 2003 Windows Vista vagy újabb vagy Windows Server szeretne eseményforrást létrehozni, rendszergazdai hitelesítő adatokkal kell rendelkeznie.
Ennek a követelménynek az az oka, hogy az összes eseménynaplót, beleértve a biztonsági naplókat is, meg kell keresni annak megállapításához, hogy az eseményforrás egyedi-e. A Windows Vista kezdve a felhasználók nem férhetnek hozzá a biztonsági naplóhoz, ezért a rendszer SecurityException dob.
Important
Az eseményforrás létrehozásához vagy törléséhez szinkronizálni kell a mögöttes kódot egy nevesített mutex használatával. Ha egy magas jogosultságú alkalmazás zárolja a nevesített mutexet, az eseményforrás létrehozása vagy törlése miatt az alkalmazás a zárolás feloldásáig nem válaszol. A probléma megelőzése érdekében soha ne adjon UnmanagedCode engedélyt a nem megbízható kódra. Emellett az engedély más engedélyek megkerülését is lehetővé teszi, UnmanagedCode és csak magas megbízhatóságú kóddal adható meg.
Az alkalmazásoknak és szolgáltatásoknak az alkalmazásnaplóba vagy egy egyéni naplóba kell írniuk. Az eszközillesztőknek a rendszernaplóba kell írniuk. Ha nem állítja be explicit módon a Log tulajdonságot, az eseménynapló alapértelmezés szerint az Alkalmazásnapló lesz.
Note
Az alkalmazásokat semmi sem védi meg a regisztrált forrásként való írástól. Ha egy alkalmazás engedélyt kap Write , eseményeket írhat a számítógépen regisztrált bármely érvényes forráshoz.
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 azok konfigurációját. Ha az operációs rendszer nem frissítette az eseményforrások listáját, és megpróbál egy eseményt írni az új forrással, az írási művelet sikertelen lesz. Új forrást egy objektum vagy EventLogInstaller metódus használatával CreateEventSource konfigurálhat. Új eseményforrás létrehozásához rendszergazdai hitelesítő adatokkal kell rendelkeznie a számítógépen.
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ás több, különböző eseménynaplókhoz vagy különböző erőforrásfájlokhoz konfigurált forrást igényel. 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, hozzon létre egy új forrást a frissített konfigurációval a meglévő forrás törlése helyett.
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értékek megadása helyett. A forrás erőforrásfájlokkal való konfigurálásával kapcsolatos további információkért tekintse meg az EventLogInstaller osztályokat és EventSourceCreationData az osztályokat.
Ha az alkalmazás sztringértékeket ír közvetlenül az eseménynaplóba, nem kell beállítania a forrás erőforrásfájl-tulajdonságait. A forrást honosított bejegyzések írására vagy közvetlen sztringek írására kell konfigurálni. 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.
Események írásakor legalább meg kell adnia egy üzenetsztringet vagy egy üzenetsztring erőforrás-azonosítót. Egyéb eseménytulajdonságok megadása nem kötelező. Az opcionális eseménybeállítások közé tartoznak például a következők:
A EventLogEntryType beállításával megadhatja, hogy a eseménymegtekintő milyen ikont jelenít meg a bejegyzéshez.
Megadhat egy kategóriaazonosítót az eseményhez, ha az alkalmazás kategóriákat használ az események szűréséhez.
Bináris adatokat csatolhat az eseménybejegyzéshez, ha további információkat szeretne társítani egy adott eseményhez.
Important
Az eseménynaplózás lemezterületet, processzoridőt és egyéb rendszererőforrásokat használ fel. Fontos, hogy csak a lényeges információkat naplózza. Javasoljuk, hogy az eseménynapló-hívásokat ne a fő kód elérési útján, hanem egy hibaútvonalon helyezze el, így azok nem befolyásolják hátrányosan a teljesítményt.
Egy példány kezdeti tulajdonságértékeinek EventLoglistáját a EventLog konstruktorban találja.
Konstruktorok
| Name | Description |
|---|---|
| EventLog() |
Inicializálja a EventLog osztály új példányát. Nem társítja a példányt egyetlen naplóhoz sem. |
| EventLog(String, String, String) |
Inicializálja a EventLog osztály új példányát. Társítja a példányt egy naplóval a megadott számítógépen, és létrehozza vagy hozzárendeli a megadott forrást a EventLog. |
| EventLog(String, String) |
Inicializálja a EventLog osztály új példányát. Társítja a példányt egy naplóval a megadott számítógépen. |
| EventLog(String) |
Inicializálja a EventLog osztály új példányát. Társítja a példányt a helyi számítógépen található naplóval. |
Tulajdonságok
| Name | Description |
|---|---|
| CanRaiseEvents |
Beolvas egy értéket, amely jelzi, hogy az összetevő képes-e eseményt létrehozni. (Öröklődés forrása Component) |
| Container |
Lekéri a IContainer .Component (Öröklődés forrása Component) |
| DesignMode |
Olyan értéket kap, amely jelzi, hogy az Component aktuálisan tervezési módban van-e. (Öröklődés forrása Component) |
| EnableRaisingEvents |
Lekéri vagy beállít egy értéket, amely jelzi, hogy az EventLog eseményértesítések érkeznek-e EntryWritten . |
| Entries |
Lekéri az eseménynapló tartalmát. |
| Events |
Lekéri az ehhez Componentcsatolt eseménykezelők listáját. (Öröklődés forrása Component) |
| Log |
Lekéri vagy beállítja annak a naplónak a nevét, amelyből olvasni vagy írni szeretne. |
| LogDisplayName |
Lekéri az eseménynapló rövid nevét. |
| MachineName |
Lekéri vagy beállítja annak a számítógépnek a nevét, amelyen eseményeket olvashat vagy írhat. |
| MaximumKilobytes |
Lekéri vagy beállítja a maximális eseménynapló-méretet kilobájtban. |
| MinimumRetentionDays |
Ez a tulajdonság használaton kívüli. |
| OverflowAction |
Lekéri az új bejegyzések tárolásának konfigurált viselkedését, amikor az eseménynapló eléri a maximális naplófájlméretet. |
| Site |
Lekéri vagy megadja a ISite értékét a Component-hez. (Öröklődés forrása Component) |
| Source |
Lekéri vagy beállítja a forrásnevet az eseménynaplóba való íráshoz és használathoz. |
| SynchronizingObject |
Lekéri vagy beállítja azt az objektumot, amely egy bejegyzés írott eseménye EventLog miatt kiadott eseménykezelő hívásokat rögzíti vagy beállítja. |
Metódusok
| Name | Description |
|---|---|
| BeginInit() |
Egy űrlapon használt vagy egy másik összetevő által használt elem inicializálásának EventLog megkezdése. Az inicializálás futásidőben történik. |
| Clear() |
Eltávolítja az összes bejegyzést az eseménynaplóból. |
| Close() |
Bezárja az eseménynaplót, és olvasási és írási leírókat ad ki. |
| CreateEventSource(EventSourceCreationData) |
Létrehoz egy érvényes eseményforrást a honosított eseményüzenetek írásához az eseményforrás és a megfelelő eseménynapló megadott konfigurációs tulajdonságainak használatával. |
| CreateEventSource(String, String, String) |
Elavult.
Elavult.
Elavult.
A megadott forrásnevet érvényes eseményforrásként hozza létre a megadott számítógépen lévő naplóba való bejegyzés írásához. Ezzel a módszerrel új egyéni naplót is létrehozhat a megadott számítógépen. |
| CreateEventSource(String, String) |
A megadott forrásnevet érvényes eseményforrásként határozza meg a bejegyzések helyi számítógépen lévő naplóba való írásához. Ez a módszer új egyéni naplót is létrehozhat a helyi számítógépen. |
| CreateObjRef(Type) |
Létrehoz egy objektumot, amely tartalmazza a távoli objektumokkal való kommunikációhoz használt proxy létrehozásához szükséges összes releváns információt. (Öröklődés forrása MarshalByRefObject) |
| Delete(String, String) |
Eltávolít egy eseménynaplót a megadott számítógépről. |
| Delete(String) |
Eltávolít egy eseménynaplót a helyi számítógépről. |
| DeleteEventSource(String, String) |
Eltávolítja az alkalmazás eseményforrás-regisztrációját a megadott számítógépről. |
| DeleteEventSource(String) |
Eltávolítja az eseményforrás-regisztrációt a helyi számítógép eseménynaplójából. |
| Dispose() |
Felszabadítja a .-hez használt összes erőforrást Component. (Öröklődés forrása Component) |
| Dispose(Boolean) |
Felszabadítja a felügyelt erőforrások által EventLoghasznált nem felügyelt erőforrásokat, és opcionálisan felszabadítja a felügyelt erőforrásokat. |
| EndInit() |
Egy űrlapon vagy egy másik összetevő által használt inicializálásának EventLog befejezése. Az inicializálás futásidőben történik. |
| Equals(Object) |
Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal. (Öröklődés forrása Object) |
| Exists(String, String) |
Meghatározza, hogy a napló létezik-e a megadott számítógépen. |
| Exists(String) |
Meghatározza, hogy a napló létezik-e a helyi számítógépen. |
| GetEventLogs() |
Megkeresi a helyi számítógépen található összes eseménynaplót, és létrehoz egy listát tartalmazó objektumtömböt EventLog . |
| GetEventLogs(String) |
Megkeresi az adott számítógépen található összes eseménynaplót, és létrehoz egy olyan objektumtömböt EventLog , amely tartalmazza a listát. |
| GetHashCode() |
Ez az alapértelmezett kivonatoló függvény. (Öröklődés forrása Object) |
| GetLifetimeService() |
Elavult.
Lekéri a példány élettartamszabályzatát vezérlő aktuális élettartam-szolgáltatásobjektumot. (Öröklődés forrása MarshalByRefObject) |
| GetService(Type) |
Olyan objektumot ad vissza, amely az általa vagy annak által ComponentContainernyújtott szolgáltatást jelöli. (Öröklődés forrása Component) |
| GetType() |
Lekéri az Type aktuális példányt. (Öröklődés forrása Object) |
| InitializeLifetimeService() |
Elavult.
Beolvas egy élettartam-szolgáltatásobjektumot a példány élettartam-szabályzatának szabályozásához. (Öröklődés forrása MarshalByRefObject) |
| LogNameFromSourceName(String, String) |
Lekéri annak a naplónak a nevét, amelyhez a megadott forrás regisztrálva van. |
| MemberwiseClone() |
Az aktuális Objectpéldány sekély másolatát hozza létre. (Öröklődés forrása Object) |
| MemberwiseClone(Boolean) |
Az aktuális MarshalByRefObject objektum sekély másolatát hozza létre. (Öröklődés forrása MarshalByRefObject) |
| ModifyOverflowPolicy(OverflowAction, Int32) |
Az eseménynapló maximális fájlméretének elérésekor módosítja az új bejegyzések írásának konfigurált viselkedését. |
| RegisterDisplayName(String, Int64) |
Megadja az eseménynapló honosított nevét, amely a kiszolgáló eseménymegtekintő jelenik meg. |
| SourceExists(String, String) |
Meghatározza, hogy egy eseményforrás regisztrálva van-e egy adott számítógépen. |
| SourceExists(String) |
Meghatározza, hogy egy eseményforrás regisztrálva van-e a helyi számítógépen. |
| ToString() |
String A ( ha van) nevet tartalmazó értéket Componentad vissza. Ezt a módszert nem szabad felülírni. (Öröklődés forrása Component) |
| WriteEntry(String, EventLogEntryType, Int32, Int16, Byte[]) |
A megadott üzenetszöveggel, alkalmazás által definiált eseményazonosítóval és alkalmazás által definiált kategóriával rendelkező bejegyzést ír az eseménynaplóba, és bináris adatokat fűz hozzá az üzenethez. |
| WriteEntry(String, EventLogEntryType, Int32, Int16) |
A megadott üzenetszöveggel, alkalmazás által definiált eseményazonosítóval és alkalmazás által definiált kategóriával rendelkező bejegyzést ír az eseménynaplóba. |
| WriteEntry(String, EventLogEntryType, Int32) |
A megadott üzenetszöveggel és alkalmazás által definiált eseményazonosítóval rendelkező bejegyzést ír az eseménynaplóba. |
| WriteEntry(String, EventLogEntryType) |
Hibaüzenetet, figyelmeztetést, információt, sikeres naplózást vagy hibanapló-bejegyzést ír az eseménynaplóba a megadott üzenetszöveggel. |
| WriteEntry(String, String, EventLogEntryType, Int32, Int16, Byte[]) |
A megadott üzenetszöveggel, alkalmazás által definiált eseményazonosítóval és alkalmazás által definiált kategóriával rendelkező bejegyzést ír az eseménynaplóba (a megadott regisztrált eseményforrás használatával), és bináris adatokat fűz hozzá az üzenethez. |
| WriteEntry(String, String, EventLogEntryType, Int32, Int16) |
Egy bejegyzést ír az eseménynaplóba a megadott üzenetszöveggel, alkalmazás által definiált eseményazonosítóval és alkalmazás által definiált kategóriával a megadott regisztrált eseményforrás használatával. A |
| WriteEntry(String, String, EventLogEntryType, Int32) |
Egy bejegyzést ír az eseménynaplóba a megadott üzenetszöveggel és alkalmazás által definiált eseményazonosítóval a megadott regisztrált eseményforrás használatával. |
| WriteEntry(String, String, EventLogEntryType) |
A megadott regisztrált eseményforrás használatával hibaüzenetet, figyelmeztetést, információt, sikeres naplózást vagy hibanapló-bejegyzést ír az eseménynaplóba a megadott üzenetszöveggel. |
| WriteEntry(String, String) |
Egy adattípus-bejegyzést ír az eseménynaplóba a megadott üzenetszöveggel a megadott regisztrált eseményforrás használatával. |
| WriteEntry(String) |
Egy adattípus-bejegyzést ír az eseménynaplóba a megadott üzenetszöveggel. |
| WriteEvent(EventInstance, Byte[], Object[], EventInstance, Byte[], Object[]) |
Eseménynapló-bejegyzést ír a megadott eseményadatokkal, üzenethelyettesítő sztringekkel és a kapcsolódó bináris adatokkal. |
| WriteEvent(EventInstance, Object[]) |
Honosított bejegyzést ír az eseménynaplóba. |
| WriteEvent(String, EventInstance, Byte[], Object[]) |
Eseménynapló-bejegyzést ír a megadott eseményadatokkal, üzenethelyettesítő sztringekkel és a társított bináris adatokkal, valamint a megadott regisztrált eseményforrás használatával. |
| WriteEvent(String, EventInstance, Object[]) |
Egy eseménynapló-bejegyzést ír a megadott eseményadatokkal és üzenethelyettesítő sztringekkel a megadott regisztrált eseményforrás használatával. |
esemény
| Name | Description |
|---|---|
| Disposed |
Akkor fordul elő, ha az összetevőt a metódus hívása megsemmisíti Dispose() . (Öröklődés forrása Component) |
| EntryWritten |
Akkor fordul elő, ha a rendszer egy bejegyzést ír egy eseménynaplóba a helyi számítógépen. |