EventLog.GetEventLogs Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Cria um array dos registos de eventos.
Sobrecargas
| Name | Description |
|---|---|
| GetEventLogs(String) |
Pesquisa todos os registos de eventos no computador dado e cria um array de EventLog objetos que contêm a lista. |
| GetEventLogs() |
Pesquisa todos os registos de eventos no computador local e cria um array de EventLog objetos que contêm a lista. |
GetEventLogs(String)
Pesquisa todos os registos de eventos no computador dado e cria um array de EventLog objetos que contêm a lista.
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()
Parâmetros
- machineName
- String
O computador onde procurar registos de eventos.
Devoluções
Um array de tipo EventLog que representa os registos do computador em questão.
Exceções
O machineName parâmetro é um nome de computador inválido.
Não tem acesso de leitura ao registo.
-ou-
Não existe nenhum serviço de registo de eventos no computador.
Exemplos
O exemplo seguinte recebe uma lista de registos no computador "myServer". Depois, gera o nome de cada 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
Observações
O array de EventLog objetos é um instantâneo de todos os registos de eventos no computador especificados pelo machineName parâmetro quando a chamada para GetEventLogs é feita. Esta não é uma coleção dinâmica, pelo que não reflete a eliminação ou criação de registos em tempo real. Deves verificar se existe um registo no array antes de leres ou escreveres nele. O array normalmente inclui pelo menos três registos: Aplicação, Sistema e Segurança. Se criaste logs personalizados no computador especificado, eles também aparecerão no array.
GetEventLogs é um static método, por isso pode ser chamado na EventLog própria classe. Não é necessário criar uma instância de um EventLog objeto para fazer uma chamada ao método.
Para aceder à lista de registos de eventos, deve ter as permissões de registo apropriadas. Estas permissões são idênticas às necessárias para chamar Exists e SourceExists.
Ver também
Aplica-se a
GetEventLogs()
Pesquisa todos os registos de eventos no computador local e cria um array de EventLog objetos que contêm a lista.
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()
Devoluções
Um array de tipos EventLog que representa os registos no computador local.
Exceções
Não tem acesso de leitura ao registo.
-ou-
Não existe nenhum serviço de registo de eventos no computador.
Exemplos
O exemplo seguinte enumera os registos de eventos definidos no computador local e apresenta detalhes de configuração para cada registo de eventos.
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
Observações
O array de EventLog objetos é um instantâneo de todos os registos de eventos no computador local quando a chamada é feita.GetEventLogs Esta não é uma coleção dinâmica, pelo que não reflete a eliminação ou criação de registos em tempo real. Deves verificar se existe um registo no array antes de leres ou escreveres nele. O array normalmente inclui pelo menos três registos: Aplicação, Sistema e Segurança. Se criaste logs personalizados no computador local, eles também aparecerão no array.
Para aceder à lista de registos de eventos, deve ter as permissões de registo apropriadas. Estas permissões são idênticas às necessárias para chamar Exists e SourceExists.