EventLog 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.
Ger interaktion med Windows händelseloggar.
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
- Arv
- Implementeringar
Exempel
I följande exempel skapas händelsekällan MySource om den inte redan finns och skriver en post till händelseloggen MyNewLog.
Anteckning
Du måste köra programmet som administratör.
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
Kommentarer
EventLog kan du komma åt eller anpassa Windows händelseloggar som registrerar information om viktiga programvaru- eller maskinvaruhändelser. Med kan EventLogdu läsa från befintliga loggar, skriva poster till loggar, skapa eller ta bort händelsekällor, ta bort loggar och svara på loggposter. Du kan också skapa nya loggar när du skapar en händelsekälla.
Viktigt!
Den här typen implementerar IDisposable gränssnittet. När du har använt typen bör du kassera den på ett direkt eller indirekt sätt. Om du vill ta bort typen direkt anropar du dess Dispose metod i ett try/catch block. Om du vill ta bort det indirekt använder du en språkkonstruktion som using (i C#) eller Using (i Visual Basic). Mer information finns i avsnittet "Använda ett objekt som implementerar IDisposable" i IDisposable gränssnittet.
Förutom att ge åtkomst till enskilda händelseloggar och deras poster EventLog kan du med klassen komma åt samlingen med alla händelseloggar. Du kan använda medlemmarna EventLog i static för att ta bort loggar, hämta logglistor, skapa eller ta bort en källa eller avgöra om en dator redan innehåller en viss källa.
Det finns tre standardhändelseloggar: Program, System och Säkerhet. En säkerhetslogg är skrivskyddad. Andra program och tjänster som du installerar, till exempel služba Active Directory, kan ha ytterligare händelseloggar.
Det finns säkerhetsöverväganden när du använder EventLog klassen. EventLog kräver EventLogPermission behörigheter för specifika åtgärder. Vi rekommenderar att EventLogPermission inte beviljas delvis betrodd kod. Du bör aldrig skicka något händelseloggobjekt, inklusive EventLogEntryCollection och EventLogEntry objekt, till mindre betrodd kod. Att till exempel skapa ett EventLog objekt, skriva en post och sedan skicka EventLog objektet till delvis betrodd kod kan skapa ett säkerhetsproblem, eftersom möjligheten att läsa och skriva till händelseloggen gör att kod kan utföra åtgärder som att utfärda händelseloggmeddelanden i namnet på ett annat program.
Från och med Windows Vista avgör UAC (User Account Control) en användares autentiseringsuppgifter. Om du är medlem i gruppen Inbyggda administratörer tilldelas du två åtkomsttoken för körning: en standardåtkomsttoken för användare och en administratörsåtkomsttoken. Som standard är du i standardanvändarrollen. Om du vill köra koden som kommer åt säkerhetsloggen måste du först höja dina autentiseringsuppgifter från standardanvändare till administratör. Du kan göra detta när du startar ett program genom att öppna snabbmenyn för programmet (om du använder en mus högerklickar du på programikonen) och anger att du vill köra som administratör.
Du kan använda EventLog för att skapa anpassade händelseloggar som du kan visa via serverns Zobrazovač udalostí. Använd metoden RegisterDisplayName för att visa ett lokaliserat namn för händelseloggen i Zobrazovač udalostí. ModifyOverflowPolicy Använd metoden för att konfigurera beteendet för händelseloggen när den når sin maximala loggstorlek.
Om du vill läsa från en händelselogg anger du loggnamnet (Log egenskapen) och serverdatornamnet (MachineName egenskapen för händelseloggen. Om du inte anger serverdatornamnet antas den lokala datorn ,. Det är inte nödvändigt att ange händelsekällan (Source egenskapen), eftersom en källa endast krävs för att skriva till loggar. Egenskapen Entries fylls automatiskt i med händelseloggens lista över poster.
Om du vill skriva till en händelselogg anger eller skapar du en händelsekälla (Source egenskap). Du måste ha administrativa autentiseringsuppgifter på datorn för att skapa en ny händelsekälla. Händelsekällan registrerar ditt program med händelseloggen som en giltig källa för poster. Du kan bara skriva till en logg i taget med händelsekällan. Egenskapen Source kan vara valfri slumpmässig sträng, men namnet måste skilja sig från andra källor på datorn. Händelsekällan är vanligtvis namnet på programmet eller en annan identifierande sträng. När du försöker skapa ett duplicerat Source värde genereras ett undantag. En enskild händelselogg kan dock associeras med flera källor.
Om händelsekällan för händelseloggen som är associerad med instansen EventLog inte finns skapas en ny händelsekälla. Om du vill skapa en händelsekälla i Windows Vista och senare eller Windows Server 2003 måste du ha administrativa autentiseringsuppgifter.
Det här kravet beror på att alla händelseloggar, inklusive säkerhetsloggar, måste genomsökas för att avgöra om händelsekällan är unik. Från och med Windows Vista har användarna inte behörighet att komma åt säkerhetsloggen. Därför utlöses en SecurityException.
Viktigt!
För att skapa eller ta bort en händelsekälla krävs synkronisering av den underliggande koden med hjälp av en namngiven mutex. Om ett högprivilegierat program låser det namngivna mutexet, gör försök att skapa eller ta bort en händelsekälla att programmet slutar svara tills låset har släppts. För att förhindra det här problemet kan du aldrig ge UnmanagedCode behörighet till kod som inte är betrodd. Dessutom UnmanagedCode kan behörigheter eventuellt tillåta att andra behörigheter kringgås och bör endast beviljas mycket betrodd kod.
Program och tjänster ska skriva till programloggen eller till en anpassad logg. Enhetsdrivrutiner bör skriva till systemloggen. Om du inte uttryckligen Log anger egenskapen, är händelseloggen som standard programloggen.
Anteckning
Det finns inget som skyddar ett program från att skriva som en registrerad källa. Om ett program beviljas Write behörighet kan det skriva händelser för alla giltiga källor som är registrerade på datorn.
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 konfiguration. 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 ett EventLogInstaller objekt eller CreateEventSource en metod. Du måste ha administrativa autentiseringsuppgifter på datorn för att skapa en ny händelsekälla.
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 krä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. Ditt program kan skriva händelseloggposter med hjälp av resursidentifierare i stället för att ange de faktiska strängvärdena. Mer information om hur du konfigurerar källan med resursfiler finns i EventLogInstaller klasserna och EventSourceCreationData .
Om ditt program skriver strängvärden direkt till händelseloggen behöver du inte ange resursfilegenskaperna för källan. Källan måste konfigureras antingen för att skriva lokaliserade poster eller för att skriva direktsträngar. 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.
När du skriver händelser måste du minst ange antingen en meddelandesträng eller resursidentifieraren för en meddelandesträng. Andra händelseegenskaper är valfria. Exempel på valfria händelseinställningar är följande:
Du kan ange EventLogEntryType för att ange ikonen som Zobrazovač udalostí visar för posten.
Du kan ange en kategoriidentifierare för händelsen, om ditt program använder kategorier för att filtrera händelserna.
Du kan koppla binära data till händelseposten om du vill associera ytterligare information med en viss händelse.
Viktigt!
Händelseloggning förbrukar diskutrymme, processortid och andra systemresurser. Det är viktigt att bara logga viktig information. Vi rekommenderar att du placerar händelselogganrop i en felsökväg i stället för i huvudkodsökvägen, så att de inte påverkar prestanda negativt.
En lista över initiala egenskapsvärden för en instans av EventLogfinns i EventLog konstruktorn.
Konstruktorer
| Name | Description |
|---|---|
| EventLog() |
Initierar en ny instans av EventLog klassen. Associerar inte instansen med någon logg. |
| EventLog(String, String, String) |
Initierar en ny instans av EventLog klassen. Associerar instansen med en logg på den angivna datorn och skapar eller tilldelar den angivna källan till EventLog. |
| EventLog(String, String) |
Initierar en ny instans av EventLog klassen. Associerar instansen med en logg på den angivna datorn. |
| EventLog(String) |
Initierar en ny instans av EventLog klassen. Associerar instansen med en logg på den lokala datorn. |
Egenskaper
| Name | Description |
|---|---|
| CanRaiseEvents |
Hämtar ett värde som anger om komponenten kan generera en händelse. (Ärvd från Component) |
| Container |
Hämtar som IContainer innehåller Component. (Ärvd från Component) |
| DesignMode |
Hämtar ett värde som anger om det Component för närvarande är i designläge. (Ärvd från Component) |
| EnableRaisingEvents |
Hämtar eller anger ett värde som anger om händelsemeddelandena EventLogEntryWritten ska tas emot. |
| Entries |
Hämtar innehållet i händelseloggen. |
| Events |
Hämtar listan över händelsehanterare som är kopplade till den här Component. (Ärvd från Component) |
| Log |
Hämtar eller anger namnet på loggen som ska läsas från eller skriva till. |
| LogDisplayName |
Hämtar händelseloggens eget namn. |
| MachineName |
Hämtar eller anger namnet på den dator där händelser ska läsas eller skrivas. |
| MaximumKilobytes |
Hämtar eller anger den maximala händelseloggstorleken i kilobyte. |
| MinimumRetentionDays |
Den här egenskapen har fasats ut. |
| OverflowAction |
Hämtar det konfigurerade beteendet för att lagra nya poster när händelseloggen når sin maximala loggfilstorlek. |
| Site |
Hämtar eller ställer in ISite i Component. (Ärvd från Component) |
| Source |
Hämtar eller anger källnamnet som ska registreras och användas när du skriver till händelseloggen. |
| SynchronizingObject |
Hämtar eller anger det objekt som används för att konvertera händelsehanteraranrop som utfärdats till följd av en EventLog skriftlig posthändelse. |
Metoder
| Name | Description |
|---|---|
| BeginInit() |
Påbörjar initieringen av ett EventLog som används i ett formulär eller används av en annan komponent. Initieringen sker vid körning. |
| Clear() |
Tar bort alla poster från händelseloggen. |
| Close() |
Stänger händelseloggen och släpper läs- och skrivhandtag. |
| CreateEventSource(EventSourceCreationData) |
Upprättar en giltig händelsekälla för att skriva lokaliserade händelsemeddelanden med hjälp av de angivna konfigurationsegenskaperna för händelsekällan och motsvarande händelselogg. |
| CreateEventSource(String, String, String) |
Föråldrad.
Etablerar det angivna källnamnet som en giltig händelsekälla för att skriva poster till en logg på den angivna datorn. Den här metoden kan också användas för att skapa en ny anpassad logg på den angivna datorn. |
| CreateEventSource(String, String) |
Etablerar det angivna källnamnet som en giltig händelsekälla för att skriva poster till en logg på den lokala datorn. Den här metoden kan också skapa en ny anpassad logg på den lokala datorn. |
| CreateObjRef(Type) |
Skapar ett objekt som innehåller all relevant information som krävs för att generera en proxy som används för att kommunicera med ett fjärrobjekt. (Ärvd från MarshalByRefObject) |
| Delete(String, String) |
Tar bort en händelselogg från den angivna datorn. |
| Delete(String) |
Tar bort en händelselogg från den lokala datorn. |
| DeleteEventSource(String, String) |
Tar bort programmets händelsekällaregistrering från den angivna datorn. |
| DeleteEventSource(String) |
Tar bort händelsekällans registrering från händelseloggen på den lokala datorn. |
| Dispose() |
Släpper alla resurser som används av Component. (Ärvd från Component) |
| Dispose(Boolean) |
Släpper de ohanterade resurser som används av EventLog, och släpper eventuellt de hanterade resurserna. |
| EndInit() |
Avslutar initieringen av ett EventLog som används i ett formulär eller av en annan komponent. Initieringen sker vid körning. |
| Equals(Object) |
Avgör om det angivna objektet är lika med det aktuella objektet. (Ärvd från Object) |
| Exists(String, String) |
Avgör om loggen finns på den angivna datorn. |
| Exists(String) |
Avgör om loggen finns på den lokala datorn. |
| GetEventLogs() |
Söker efter alla händelseloggar på den lokala datorn och skapar en matris med EventLog objekt som innehåller listan. |
| GetEventLogs(String) |
Söker efter alla händelseloggar på den angivna datorn och skapar en matris med EventLog objekt som innehåller listan. |
| GetHashCode() |
Fungerar som standard-hash-funktion. (Ärvd från Object) |
| GetLifetimeService() |
Hämtar det aktuella livslängdstjänstobjektet som styr livslängdsprincipen för den här instansen. (Ärvd från MarshalByRefObject) |
| GetService(Type) |
Returnerar ett objekt som representerar en tjänst som tillhandahålls av Component eller av dess Container. (Ärvd från Component) |
| GetType() |
Hämtar den aktuella instansen Type . (Ärvd från Object) |
| InitializeLifetimeService() |
Hämtar ett tjänstobjekt för livslängd för att styra livslängdsprincipen för den här instansen. (Ärvd från MarshalByRefObject) |
| LogNameFromSourceName(String, String) |
Hämtar namnet på loggen som den angivna källan är registrerad i. |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| MemberwiseClone(Boolean) |
Skapar en ytlig kopia av det aktuella MarshalByRefObject objektet. (Ärvd från MarshalByRefObject) |
| ModifyOverflowPolicy(OverflowAction, Int32) |
Ändrar det konfigurerade beteendet för att skriva nya poster när händelseloggen når sin maximala filstorlek. |
| RegisterDisplayName(String, Int64) |
Anger det lokaliserade namnet på händelseloggen, som visas på servern Zobrazovač udalostí. |
| SourceExists(String, String) |
Avgör om en händelsekälla är registrerad på en angiven dator. |
| SourceExists(String) |
Avgör om en händelsekälla är registrerad på den lokala datorn. |
| ToString() |
Returnerar ett String som innehåller namnet på Component, om det finns. Den här metoden bör inte åsidosättas. (Ärvd från Component) |
| WriteEntry(String, EventLogEntryType, Int32, Int16, Byte[]) |
Skriver en post med den angivna meddelandetexten, programdefinierad händelseidentifierare och programdefinierad kategori i händelseloggen och lägger till binära data i meddelandet. |
| WriteEntry(String, EventLogEntryType, Int32, Int16) |
Skriver en post med den angivna meddelandetexten, programdefinierad händelseidentifierare och programdefinierad kategori till händelseloggen. |
| WriteEntry(String, EventLogEntryType, Int32) |
Skriver en post med angiven meddelandetext och programdefinierad händelseidentifierare till händelseloggen. |
| WriteEntry(String, EventLogEntryType) |
Skriver ett fel, en varning, information, en lyckad granskning eller en felgranskningspost med den angivna meddelandetexten till händelseloggen. |
| WriteEntry(String, String, EventLogEntryType, Int32, Int16, Byte[]) |
Skriver en post med den angivna meddelandetexten, programdefinierad händelseidentifierare och programdefinierad kategori i händelseloggen (med den angivna registrerade händelsekällan) och lägger till binära data i meddelandet. |
| WriteEntry(String, String, EventLogEntryType, Int32, Int16) |
Skriver en post med angiven meddelandetext, programdefinierad händelseidentifierare och programdefinierad kategori till händelseloggen med den angivna registrerade händelsekällan.
|
| WriteEntry(String, String, EventLogEntryType, Int32) |
Skriver en post med angiven meddelandetext och programdefinierad händelseidentifierare till händelseloggen med den angivna registrerade händelsekällan. |
| WriteEntry(String, String, EventLogEntryType) |
Skriver ett fel, en varning, information, en lyckad granskning eller en felgranskningspost med den angivna meddelandetexten till händelseloggen med den angivna registrerade händelsekällan. |
| WriteEntry(String, String) |
Skriver en informationstyppost med den angivna meddelandetexten till händelseloggen med den angivna registrerade händelsekällan. |
| WriteEntry(String) |
Skriver en informationstyppost, med den angivna meddelandetexten, till händelseloggen. |
| WriteEvent(EventInstance, Byte[], Object[]) |
Skriver en händelseloggpost med angivna händelsedata, ersättningssträngar för meddelanden och associerade binära data. |
| WriteEvent(EventInstance, Object[]) |
Skriver en lokaliserad post till händelseloggen. |
| WriteEvent(String, EventInstance, Byte[], Object[]) |
Skriver en händelseloggpost med angivna händelsedata, ersättningssträngar för meddelanden och associerade binära data och använder den angivna registrerade händelsekällan. |
| WriteEvent(String, EventInstance, Object[]) |
Skriver en händelseloggpost med angivna händelsedata och ersättningssträngar för meddelanden med den angivna registrerade händelsekällan. |
Händelser
| Name | Description |
|---|---|
| Disposed |
Inträffar när komponenten tas bort av ett anrop till Dispose() metoden. (Ärvd från Component) |
| EntryWritten |
Inträffar när en post skrivs till en händelselogg på den lokala datorn. |