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);
    }
}
15
demandé sur martijnn2008 2010-06-30 13:29:01

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();
17
répondu Domenico 2017-09-19 14:40:37

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.

4
répondu Vyacheslav Antonyuk 2016-11-29 16:59:30

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)

1
répondu atamanroman 2010-06-30 09:49:01

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");
0
répondu Tanvir 2013-02-27 19:23:04

Si vous se connecter à localhost jeu d'Ordinateur "." Vérifiez si l'Utilisateur a le droit de lire depuis eventlog

-2
répondu Aik 2010-06-30 09:36:42