locked
Utilisation de System.Diagnostics.EventLog RRS feed

  • Question

  • Bonjour,

    Je cherche à exporter les différents journaux windows (observateur d'evt) vers une base SQL, ce qui ne parait pas exceptionnel.

    Je travaille donc avec un compossant eventlog, je me "connect" bien sur les journaux, j'arrive même à récupérer l'ensemble des infos voulus sauf une pourtant majeur :

    l' Event ID (le numéro d'evenement de l'erreur)

    j'essaye d'utiliser instanceid mais l'information renvoyé n'est pas bonne (ex: pour une erreur 1074 il me renvoir une info du type 237651456908 !! .)

    Je jette ci-dessous un bout de code pour faciliter la compréhenion de mon pb :

          Dim ev As New EventLog("System", System.Environment.MachineName)
            Dim entry As EventLogEntry
            Dim EntLog, EntCategory, EntUser, EntType, EntMessage, EntComputerName, EntDate, EntTime, EntSource, EntEvID As String

            For Each entry In ev.Entries
                EntType = entry.EntryType.ToString
                EntMessage = entry.Message
                EntComputerName = entry.MachineName
                EntDate = entry.TimeWritten.Date.ToShortDateString
                EntTime = entry.TimeWritten.TimeOfDay.ToString
                EntSource = entry.Source
                EntUser = entry.UserName
                EntEvID = entry.InstanceId
                EntCategory = entry.Category.ToString
                EntLog = ev.LogDisplayName

    next


    Si qqun à déjà eu ce pb merci par avance pour le coup de pouce.


    Bon week

    samedi 14 avril 2007 11:08

Réponses

  • Bonjour,

     

    Le constat que vous faite n'est pas surprenant ...

    Voir l'explication : http://msdn2.microsoft.com/fr-fr/library/system.diagnostics.eventlogentry.instanceid(VS.80).aspx

     

    "La propriété InstanceId identifie de manière unique une entrée d'événement pour une source d'événements configurée. InstanceId d'une entrée du journal des événements représente l'identificateur de ressource 32 bits complet de l'événement dans le fichier de ressources du message pour la source d'événements. La propriété EventID équivaut à InstanceId avec les deux bits supérieurs masqués. Deux entrées de journal des événements provenant de la même source peuvent avoir des valeurs EventID correspondantes, mais ont des valeurs InstanceId différentes en raison de différences au niveau des deux bits supérieurs de l'identificateur de ressource.

    Si l'application a écrit l'entrée d'événement à l'aide d'une des méthodes WriteEntry, la propriété InstanceId correspond au paramètre eventId facultatif. Si l'application a écrit l'événement à l'aide de WriteEvent, la propriété InstanceId correspond à l'identificateur de ressource spécifié dans InstanceId du paramètre instance. Si l'application a écrit l'événement à l'aide de l'API Win32 ReportEvent, la propriété InstanceId correspond à l'identificateur de ressource spécifié dans le paramètre dwEventID."

     

     

    samedi 14 avril 2007 11:44