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

C# Discussion :

log4net et c#


Sujet :

C#

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 98
    Points : 68
    Points
    68
    Par défaut log4net et c#
    Bonjour à tout le monde. J'essaye d'intégrer log4net dans mes applications c#. Pour ce faire, j'ai commencé déjà avec un petite exemple.
    après que j'ai intégré log4net dans la référence, j'ai trouver un exemple du fichier xml de configuration :
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <configSections>
        <section
            name="log4net"
            type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"
    	    />
      </configSections>
     
      <!-- Cette section contient les informations nécessaires à la configuration de log4net -->
      <log4net>
        <!-- Définie une sortie (où les textes de débogage peuvent aller) -->
        <appender name="SortieVersUnFichier" type="log4net.Appender.FileAppender, log4net">
          <param name="File" value="log.txt" />
          <param name="AppendToFile" value="false" />
          <layout type="log4net.Layout.PatternLayout, log4net">
            <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] &lt;%X{auth}&gt; - %m%n" />
          </layout>
        </appender>
     
        <!-- Définie la catégorie racine, son niveau de priorité par défaut et ajoute le(s) sortie(s) (où les textes de débogage vont aller) -->
        <root>
          <priority value="WARN" />
          <appender-ref ref="SortieVersUnFichier" />
        </root>
     
        <!-- Spécifie le niveau de certain namespaces -->
        <!-- Le niveau peut être : ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF -->
        <logger name="ExempleLog4Net">
          <level value="INFO" />
        </logger>
      </log4net>
    </configuration>
    et dans mon application j'ai une seule form avec un bouton
    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
    21
    22
    23
    24
    25
    26
    27
    28
     
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using log4net;
     
    [assembly: log4net.Config.XmlConfigurator(Watch = true)]
    namespace ExempleLog4Net
    {
        public partial class Form1 : Form
        {
            // Create a logger for use in this class
            private static readonly log4net.ILog log = log4net.LogManager.GetLogger(typeof(Form1));
     
            public Form1()
            {
                if (log.IsInfoEnabled) log.Info("Application_Start()");
                InitializeComponent();
            }
     
            private void button1_Click(object sender, EventArgs e)
            {
                if (log.IsInfoEnabled) log.Info("Application_Start()");
     
            }
        }
    }
    normalement avec la creation de la fenetre ou la clique suur le bouton j'aurai le message "Application_Start()" mais je le trouve pas. je trouve mon fichier log.txt mais vide! si vous pouvez m'aider. Merci

  2. #2
    Rédacteur
    Avatar de Greybird
    Inscrit en
    Juin 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 673
    Points : 1 271
    Points
    1 271
    Par défaut
    Tu as défini le niveau de log global à WARN.

    Tu as affiné le niveau de log à INFO pour le Logger ExempleLog4Net.

    En revanche, tu récupère un logger avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    log4net.LogManager.GetLogger(typeof(Form1));
    Tu vas donc écrire dans le Logger ExempleLog4Net.Form1, qui, n'ayant pas été reconfiguré par ailleurs, est au niveau WARN, et ne laisse donc pas passer les messages INFO.

    EDIT : j'écris des bêtises, l'héritage entre les loggers ExempleLog4Net.Form1 et ExempleLog4Net devrait jouer.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 98
    Points : 68
    Points
    68
    Par défaut
    Merci beaucoup pour ta réponse. en effet j'ai changé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        <logger name="ExempleLog4Net">
          <level value="INFO" />
        </logger>
    en mettant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        <logger name="ExempleLog4Net">
          <level value="ALL" />
        </logger>
    et c'est bien marché. Donc j'avais la ligne suivante dans mon log
    2008-12-10 14:14:25,696 [3784] INFO ExempleLog4Net.Form1 [(null)] <(null)> - Application_Start()
    et ma question maintenant : c'est quoi l'explication de null ici.

  4. #4
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 494
    Points : 3 129
    Points
    3 129
    Par défaut
    [%x] ==> Used to output the NDC (nested diagnostic context) associated with the thread that generated the logging event.

    &lt;%X{auth}&gt ==> <%X{auth}> ==> correspond à property{Auth} qui doit afficher l'auteur de la ligne je pense


    Les détails ici

Discussions similaires

  1. Ecrire dans fichier avec Log4Net
    Par cd090580 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 05/12/2010, 17h01
  2. Pb avec Log4net
    Par yazman dans le forum Windows Forms
    Réponses: 13
    Dernier message: 07/12/2007, 12h17
  3. WPF et log4net
    Par oyigit dans le forum Windows Presentation Foundation
    Réponses: 6
    Dernier message: 20/09/2007, 14h48
  4. Log4Net et paramétrage de date
    Par cyrille_ dans le forum C#
    Réponses: 2
    Dernier message: 15/06/2007, 14h31
  5. log4net, C# >> VB6
    Par soshell dans le forum C++/CLI
    Réponses: 1
    Dernier message: 03/10/2006, 17h24

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