EventLog.GetEventLogs Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Crée un tableau des journaux des événements.
Surcharges
GetEventLogs(String) |
Recherche tous les journaux des événements sur l'ordinateur spécifié et crée un tableau des objets EventLog qui contiennent la liste. |
GetEventLogs() |
Recherche tous les journaux des événements sur l'ordinateur local et crée un tableau des objets EventLog qui contiennent la liste. |
GetEventLogs(String)
- Source:
- EventLog.cs
- Source:
- EventLog.cs
- Source:
- EventLog.cs
Recherche tous les journaux des événements sur l'ordinateur spécifié et crée un tableau des objets EventLog qui contiennent la liste.
public:
static cli::array <System::Diagnostics::EventLog ^> ^ GetEventLogs(System::String ^ machineName);
public static System.Diagnostics.EventLog[] GetEventLogs (string machineName);
static member GetEventLogs : string -> System.Diagnostics.EventLog[]
Public Shared Function GetEventLogs (machineName As String) As EventLog()
Paramètres
- machineName
- String
Ordinateur sur lequel rechercher les journaux des événements.
Retours
Tableau de type EventLog représentant les journaux sur l'ordinateur spécifié.
Exceptions
Le paramètre machineName
est un nom d'ordinateur non valide.
Vous n'avez pas d'accès en lecture sur le Registre.
- ou -
Il n'y a pas de service Journal des événements sur l'ordinateur.
Exemples
L’exemple suivant obtient une liste des journaux sur l’ordinateur « myServer ». Il génère ensuite le nom de chaque journal.
#using <System.dll>
using namespace System;
using namespace System::Diagnostics;
using namespace System::Threading;
int main()
{
array<EventLog^>^remoteEventLogs;
remoteEventLogs = EventLog::GetEventLogs( "myServer" );
Console::WriteLine( "Number of logs on computer: {0}", remoteEventLogs->Length );
System::Collections::IEnumerator^ myEnum = remoteEventLogs->GetEnumerator();
while ( myEnum->MoveNext() )
{
EventLog^ log = safe_cast<EventLog^>(myEnum->Current);
Console::WriteLine( "Log: {0}", log->Log );
}
}
using System;
using System.Diagnostics;
class MySample
{
public static void Main()
{
EventLog[] remoteEventLogs;
remoteEventLogs = EventLog.GetEventLogs("myServer");
Console.WriteLine("Number of logs on computer: " + remoteEventLogs.Length);
foreach (EventLog log in remoteEventLogs)
{
Console.WriteLine("Log: " + log.Log);
}
}
}
Imports System.Diagnostics
Imports System.Threading
Class MySample
Public Shared Sub Main()
Dim remoteEventLogs() As EventLog
remoteEventLogs = EventLog.GetEventLogs("myServer")
Console.WriteLine(("Number of logs on computer: " & remoteEventLogs.Length))
Dim log As EventLog
For Each log In remoteEventLogs
Console.WriteLine(("Log: " & log.Log))
Next log
End Sub
End Class
Remarques
Le tableau d’objets EventLog est un instantané de tous les journaux des événements sur l’ordinateur spécifié par le machineName
paramètre lorsque l’appel à GetEventLogs est effectué. Il ne s’agit pas d’une collection dynamique. Elle ne reflète donc pas la suppression ou la création de journaux en temps réel. Vous devez vérifier qu’il existe un journal dans le tableau avant de le lire ou d’y écrire. Le tableau comprend généralement au moins trois journaux : Application, Système et Sécurité. Si vous avez créé des journaux personnalisés sur l’ordinateur spécifié, ils apparaissent également dans le tableau.
GetEventLogs est une static
méthode, elle peut donc être appelée sur la EventLog classe elle-même. Il n’est pas nécessaire de créer un instance d’un EventLog objet pour effectuer un appel à la méthode .
Pour récupérer la liste des journaux des événements, vous devez disposer des autorisations de Registre appropriées. Ces autorisations sont identiques à celles requises pour appeler Exists et SourceExists.
Voir aussi
S’applique à
GetEventLogs()
- Source:
- EventLog.cs
- Source:
- EventLog.cs
- Source:
- EventLog.cs
Recherche tous les journaux des événements sur l'ordinateur local et crée un tableau des objets EventLog qui contiennent la liste.
public:
static cli::array <System::Diagnostics::EventLog ^> ^ GetEventLogs();
public static System.Diagnostics.EventLog[] GetEventLogs ();
static member GetEventLogs : unit -> System.Diagnostics.EventLog[]
Public Shared Function GetEventLogs () As EventLog()
Retours
Tableau de type EventLog représentant les journaux sur l'ordinateur local.
Exceptions
Vous n'avez pas d'accès en lecture sur le Registre.
- ou -
Il n'y a pas de service Journal des événements sur l'ordinateur.
Exemples
L’exemple suivant énumère les journaux des événements définis sur l’ordinateur local et affiche les détails de configuration pour chaque journal des événements.
void DisplayEventLogProperties()
{
// Iterate through the current set of event log files,
// displaying the property settings for each file.
array<EventLog^>^eventLogs = EventLog::GetEventLogs();
System::Collections::IEnumerator^ myEnum = eventLogs->GetEnumerator();
while ( myEnum->MoveNext() )
{
EventLog^ e = safe_cast<EventLog^>(myEnum->Current);
Int64 sizeKB = 0;
Console::WriteLine();
Console::WriteLine( "{0}:", e->LogDisplayName );
Console::WriteLine( " Log name = \t\t {0}", e->Log );
Console::WriteLine( " Number of event log entries = {0}", e->Entries->Count );
// Determine if there is a file for this event log.
RegistryKey ^ regEventLog = Registry::LocalMachine->OpenSubKey( String::Format( "System\\CurrentControlSet\\Services\\EventLog\\{0}", e->Log ) );
if ( regEventLog )
{
Object^ temp = regEventLog->GetValue( "File" );
if ( temp != nullptr )
{
Console::WriteLine( " Log file path = \t {0}", temp );
FileInfo^ file = gcnew FileInfo( temp->ToString() );
// Get the current size of the event log file.
if ( file->Exists )
{
sizeKB = file->Length / 1024;
if ( (file->Length % 1024) != 0 )
{
sizeKB++;
}
Console::WriteLine( " Current size = \t {0} kilobytes", sizeKB );
}
}
else
{
Console::WriteLine( " Log file path = \t <not set>" );
}
}
// Display the maximum size and overflow settings.
sizeKB = e->MaximumKilobytes;
Console::WriteLine( " Maximum size = \t {0} kilobytes", sizeKB );
Console::WriteLine( " Overflow setting = \t {0}", e->OverflowAction );
switch ( e->OverflowAction )
{
case OverflowAction::OverwriteOlder:
Console::WriteLine( "\t Entries are retained a minimum of {0} days.", e->MinimumRetentionDays );
break;
case OverflowAction::DoNotOverwrite:
Console::WriteLine( "\t Older entries are not overwritten." );
break;
case OverflowAction::OverwriteAsNeeded:
Console::WriteLine( "\t If number of entries equals max size limit, a new event log entry overwrites the oldest entry." );
break;
default:
break;
}
}
}
static void DisplayEventLogProperties()
{
// Iterate through the current set of event log files,
// displaying the property settings for each file.
EventLog[] eventLogs = EventLog.GetEventLogs();
foreach (EventLog e in eventLogs)
{
Int64 sizeKB = 0;
Console.WriteLine();
Console.WriteLine("{0}:", e.LogDisplayName);
Console.WriteLine(" Log name = \t\t {0}", e.Log);
Console.WriteLine(" Number of event log entries = {0}", e.Entries.Count.ToString());
// Determine if there is an event log file for this event log.
RegistryKey regEventLog = Registry.LocalMachine.OpenSubKey("System\\CurrentControlSet\\Services\\EventLog\\" + e.Log);
if (regEventLog != null)
{
Object temp = regEventLog.GetValue("File");
if (temp != null)
{
Console.WriteLine(" Log file path = \t {0}", temp.ToString());
FileInfo file = new FileInfo(temp.ToString());
// Get the current size of the event log file.
if (file.Exists)
{
sizeKB = file.Length / 1024;
if ((file.Length % 1024) != 0)
{
sizeKB++;
}
Console.WriteLine(" Current size = \t {0} kilobytes", sizeKB.ToString());
}
}
else
{
Console.WriteLine(" Log file path = \t <not set>");
}
}
// Display the maximum size and overflow settings.
sizeKB = e.MaximumKilobytes;
Console.WriteLine(" Maximum size = \t {0} kilobytes", sizeKB.ToString());
Console.WriteLine(" Overflow setting = \t {0}", e.OverflowAction.ToString());
switch (e.OverflowAction)
{
case OverflowAction.OverwriteOlder:
Console.WriteLine("\t Entries are retained a minimum of {0} days.",
e.MinimumRetentionDays);
break;
case OverflowAction.DoNotOverwrite:
Console.WriteLine("\t Older entries are not overwritten.");
break;
case OverflowAction.OverwriteAsNeeded:
Console.WriteLine("\t If number of entries equals max size limit, a new event log entry overwrites the oldest entry.");
break;
default:
break;
}
}
}
Shared Sub DisplayEventLogProperties()
' Iterate through the current set of event log files,
' displaying the property settings for each file.
Dim eventLogs As EventLog() = EventLog.GetEventLogs()
Dim e As EventLog
For Each e In eventLogs
Dim sizeKB As Int64 = 0
Console.WriteLine()
Console.WriteLine("{0}:", e.LogDisplayName)
Console.WriteLine(" Log name = " + ControlChars.Tab _
+ ControlChars.Tab + " {0}", e.Log)
Console.WriteLine(" Number of event log entries = {0}", e.Entries.Count.ToString())
' Determine if there is an event log file for this event log.
Dim regEventLog As RegistryKey
regEventLog = Registry.LocalMachine.OpenSubKey( _
("System\CurrentControlSet\Services\EventLog\" + e.Log))
If Not (regEventLog Is Nothing) Then
Dim temp As Object = regEventLog.GetValue("File")
If Not (temp Is Nothing) Then
Console.WriteLine(" Log file path = " + ControlChars.Tab _
+ " {0}", temp.ToString())
Dim file As New FileInfo(temp.ToString())
' Get the current size of the event log file.
If file.Exists Then
sizeKB = file.Length / 1024
If file.Length Mod 1024 <> 0 Then
sizeKB += 1
End If
Console.WriteLine(" Current size = " + ControlChars.Tab _
+ " {0} kilobytes", sizeKB.ToString())
End If
Else
Console.WriteLine(" Log file path = " + ControlChars.Tab _
+ " <not set>")
End If
End If
' Display the maximum size and overflow settings.
sizeKB = e.MaximumKilobytes
Console.WriteLine(" Maximum size = " + ControlChars.Tab _
+ " {0} kilobytes", sizeKB.ToString())
Console.WriteLine(" Overflow setting = " + ControlChars.Tab _
+ " {0}", e.OverflowAction.ToString())
Select Case e.OverflowAction
Case OverflowAction.OverwriteOlder
Console.WriteLine(ControlChars.Tab + _
" Entries are retained a minimum of {0} days.", _
e.MinimumRetentionDays)
Case OverflowAction.DoNotOverwrite
Console.WriteLine(ControlChars.Tab + _
" Older entries are not overwritten.")
Case OverflowAction.OverwriteAsNeeded
Console.WriteLine(ControlChars.Tab + _
" If number of entries equals max size limit, a new event log entry overwrites the oldest entry.")
Case Else
End Select
Next e
End Sub
Remarques
Le tableau d’objets EventLog est un instantané de tous les journaux des événements sur l’ordinateur local lorsque l’appel à GetEventLogs est effectué. Il ne s’agit pas d’une collection dynamique. Elle ne reflète donc pas la suppression ou la création de journaux en temps réel. Vous devez vérifier qu’il existe un journal dans le tableau avant de le lire ou d’y écrire. Le tableau comprend généralement au moins trois journaux : Application, Système et Sécurité. Si vous avez créé des journaux personnalisés sur l’ordinateur local, ils apparaissent également dans le tableau.
Pour récupérer la liste des journaux des événements, vous devez disposer des autorisations de Registre appropriées. Ces autorisations sont identiques à celles requises pour appeler Exists et SourceExists.