IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

ASP.NET: Comment utiliser EventLog.WriteEntry "proprement" ?


Sujet :

ASP.NET

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2005
    Messages
    346
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2005
    Messages : 346
    Points : 119
    Points
    119
    Par défaut ASP.NET: Comment utiliser EventLog.WriteEntry "proprement" ?
    Bonjour,

    depuis une application ASP.NET, j'utilise EventLog.WriteEntry() pour écrire la trace des exceptions dans le journal d'applications Windows.

    J'ai déjà ajouté une clé à la base de registre dans
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\[APP_NAME]

    Seulement, l'événement écrit dans le journal est:
    La description de l’ID d’événement 0 dans la source [APP_NAME] est introuvable. Le composant qui a déclenché cet événement n’est pas installé sur l’ordinateur local ou l’installation est endommagée. Vous pouvez installer ou réparer le composant sur l’ordinateur local.

    Si l’événement provient d’un autre ordinateur, les informations d’affichage doivent être enregistrées avec l’événement.

    Les informations suivantes étaient incluses avec l’événement*:

    [LA TRACE DE MON EXCEPTION]

    La ressource de message est présente mais le message ne se trouve pas dans la table des chaînes ou des messages
    Comment faire pour ne pas avoir ce texte autour de ma trace ?

    Merci d'avance pour toute info.

  2. #2
    Expert confirmé
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Points : 4 066
    Points
    4 066
    Par défaut
    Bonjour Chekov

    As-tu bien créé l'EventLog avant d'appeler WriteEntry ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    //Create Event Log if It Doesn't Exist
    if (! EventLog.SourceExists("MySource"))     
    <div style="margin-left:40px">EventLog.CreateEventSource("MySource", "MySource");</div>
    Tu peux aussi regarder du côté de EventLogWebEventProvider, ou faire une recherche sur "Monitoring ASP.Net".

    En espérant t'avoir aidé.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Août 2005
    Messages
    346
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2005
    Messages : 346
    Points : 119
    Points
    119
    Par défaut
    Ca ne marche malheureusement toujours pas...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if (!EventLog.SourceExists(APP_NAME))
                    EventLog.CreateEventSource(APP_NAME, "Application");
     
                EventLog Log = new EventLog("Application");
                Log.Source = APP_NAME;
                Log.WriteEntry(exception.ToString(), EventLogEntryType.Error);
    Revient au même que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    EventLog.WriteEntry(
                        APP_NAME,
                        exception.ToString(),
                        EventLogEntryType.Error);
    Je suppose que EventLog.CreateEventSource() permet de créer la clé que j'ai ajouté manuellement dans la base de registre (cf. premier message).

    L'événement écrit contient toujours ce texte "La description de l’ID d’événement 0 dans la source[...]" avant la trace exception.ToString().

  4. #4
    Expert confirmé
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Points : 4 066
    Points
    4 066
    Par défaut
    Bizarre,

    Ton code m'a l'air ok. Sur MSDN il font ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
            // Create the source, if it does not already exist.
            if(!EventLog.SourceExists("MySource"))
            {
                 //An event log source should not be created and immediately used.
                 //There is a latency time to enable the source, it should be created
                 //prior to executing the application that uses the source.
                 //Execute this sample a second time to use the new source.
                EventLog.CreateEventSource("MySource", "MyNewLog");
                Console.WriteLine("CreatedEventSource");
                Console.WriteLine("Exiting, execute the application a second time to use the source.");
                // The source is created.  Exit the application to allow it to be registered.
                return;
            }
    
            // Create an EventLog instance and assign its source.
            EventLog myLog = new EventLog();
            myLog.Source = "MySource";
    
            // Write an informational entry to the event log.    
            myLog.WriteEntry("Writing to event log.");

    As-tu testé de créer ton EventLog sans spécifier "Application" en paramètres ? De même, as-tu testé d'insérer exception.message.ToString() ou un simple message de test à la place ?

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 23
    Points : 32
    Points
    32
    Par défaut Ecrire dans le journal d'application Windows
    Voici un article complet création/écriture dans un journal d'application :
    http://www.xoowiki.com/Article/Cshar...t-log-505.aspx

Discussions similaires

  1. Réponses: 2
    Dernier message: 12/02/2013, 10h50
  2. comment afficher un msg box sous asp.net en utilisant c#
    Par Khalid.bounouader dans le forum ASP.NET
    Réponses: 4
    Dernier message: 27/08/2008, 17h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo