Lire le journal des événements C#
j'essaie de lire les journaux d'événements pour mon application EventLoggingApp. Le problème est de lire des journaux pour mon unique source (EventLoggingApp).
CE code lit les logs pour chaque source. Quel est le problème? Tous les conseils?
static void ReadEvenLog()
{
string eventLogName = "Application";
string sourceName = "EventLoggingApp";
string machineName = "Tom";
EventLog eventLog = new EventLog();
eventLog.Log = eventLogName;
eventLog.Source = sourceName;
eventLog.MachineName = machineName;
foreach (EventLogEntry log in eventLog.Entries)
{
Console.WriteLine("{0}n",log.Source);
}
}
5 réponses
essaye ceci:
EventLog log = new EventLog("Security");
var entries = log.Entries.Cast<EventLogEntry>()
.Where(x => x.InstanceId == 4624)
.Select(x => new
{
x.MachineName,
x.Site,
x.Source,
x.Message
}).ToList();
découvrez ce article sur MSDN. Vous ne pouvez pas lire les entrées du journal d'événements par source. Seul le nom du journal importe. À la place, vous pouvez créer un journal d'événements séparé pour votre application ou filtrer les entrées en vérifiant la propriété Source de chaque entrée dans la boucle foreach.
MSDN (1) (2) dit que la Source est pour l'écriture des journaux d'événements seulement.
il n'est pas nécessaire de spécifier une Source lors de la lecture d'un journal. Vous ne pouvez spécifier que le nom de Log et les propriétés MachineName (server computer name) pour l'instance EventLog. Dans les deux cas, le membre entrées est automatiquement rempli avec la liste des entrées du journal des événements. Vous pouvez sélectionner l'indice approprié pour un élément dans cette liste de lecture individuelle entrée. (1)
je ne suis pas vraiment sûr de ce que vous essayez d'imprimer sur la console. Si c'est le message dans chaque entrée du journal d'événements que vous essayez d'imprimer, à l'intérieur du foreach
boucle, vous devriez avoir ceci à la place:
Console.WriteLine(log.Message + "\n");
Si vous se connecter à localhost jeu d'Ordinateur "." Vérifiez si l'Utilisateur a le droit de lire depuis eventlog