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

Windows Forms Discussion :

Pb avec Log4net


Sujet :

Windows Forms

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 38
    Points : 25
    Points
    25
    Par défaut Pb avec Log4net
    Salut,

    J'ai ajouté le framework log4net dans ma solution mais bizarement après la configuration du fichier log.config et l'exécution de l'application je ne trouve pas un fichier de Log.

    Pour le log.config, voici un petit aperçu
    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
    <log4net>
    	<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
    		<file value="C:\\Logs\\" />
    		<datePattern value="yyyyMM\\yyyyMMdd.lo\g" />
    		<rollingStyle value="Date" />
    		<appendToFile value="true" />
    		<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
    		<staticLogFileName value="false" />
    		<filter type="log4net.Filter.LevelRangeFilter">
    			<acceptOnMatch value="true" />
    			<levelMin value="DEBUG" />
    			<levelMax value="FATAL" />
    		</filter>
    		<layout type="log4net.Layout.PatternLayout">
    			<conversionPattern value="%-5level %date [%file:%line] - %message%newline"/>
    		</layout>
    	</appender>
    	<root>
    		<level value="DEBUG" />
    		<appender-ref ref="RollingLogFileAppender" />
    	</root>
    </log4net>
    Et dans la classe je le déclare ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private static readonly ILog Log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
    J'espère que vous pouvez m'aider. Merci.

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Citation Envoyé par yazman Voir le message
    Pour le log.config, voici un petit aperçu
    Ce code doit etre dans le fichier de configuration (app.config) de ton application

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 38
    Points : 25
    Points
    25
    Par défaut
    J'ai rajouté le bout de code de log.config après la balise fermante de appsettings (app.config) et depuis je ne peux plus accéder aux informations de l'application.

    Question peut être un peu bête : comment ajouter ce code dans app.config ?

  4. #4
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 38
    Points : 25
    Points
    25
    Par défaut
    Bon j'ai trouvé une méthode à ajouter mais ça marche pas encore.
    En effet, j'ai ajouté dans app.config :
    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
    35
    36
    37
    38
    39
    40
        <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
    // ...
          <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
        </sectionGroup>
    //...
    <applicationSettings>
    //...
        <log4net>
          <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender" >
            <param name="File" value="C:\\Logs\\" />
            <param name="AppendToFile" value="true" />
            <param name="StaticLogFileName" value="false" />
            <param name="DatePattern" value='"."yyyy-MM-dd".log"' />
            <layout type="log4net.Layout.PatternLayout">
              <conversionPattern value="%-5p %d %5rms %c %C.%M  - line %L - [%m] %n" />
              <param name="Header" value="[Start]\r\n"/>
              <param name="Footer" value="[End]\r\n"/>
            </layout>
            <maximumFileSize value="1024KB" />
            <maxSizeRollBackups value="2" />
          </appender>
     
          <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
            <layout type="log4net.Layout.PatternLayout">
              <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
            </layout>
          </appender>
     
          <!-- Set default logging level to DEBUG -->
          <root>
            <level value="DEBUG" />
            <appender-ref ref="ConsoleAppender" />
          </root>
     
          <!-- Set logging for Spring to INFO.  Logger names in Spring correspond to the namespace -->
          <logger name="TOP">
            <level value="ALL" />
          </logger>
        </log4net>
      </applicationSettings>
    Et dans la classe, je la déclare ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private static readonly ILog Log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

  5. #5
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 17
    Points : 21
    Points
    21
    Par défaut il faut mettre le nom du fichier
    Voila ton code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <param name="File" value="C:\\Logs\\" />
    Je mettrais par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <param name="File" value="C:\\Logs\\monLog.txt" />
    ou encore

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <param name="File" value="monLog.txt" />
    Dans ce dernier cas, le fichier sera créer ds le bin/debug en fait là où est exécuté l'appli.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 38
    Points : 25
    Points
    25
    Par défaut
    Citation Envoyé par gmanouvrier Voir le message
    Je mettrais par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <param name="File" value="C:\\Logs\\monLog.txt" />
    ou encore

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <param name="File" value="monLog.txt" />
    Dans ce dernier cas, le fichier sera créer ds le bin/debug en fait là où est exécuté l'appli.
    ça ne marche pas

  7. #7
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 17
    Points : 21
    Points
    21
    Par défaut ne désespérons pas ;)
    Voila un extrait de l'une de mes config, si ça paux t'aider
    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
     
    <appender name="authFile" type="log4net.Appender.RollingFileAppender,log4net">
    		<param name="threshold" value="INFO"/>
    		<param name="File" value="logs/auth/authlog.txt" />
    		<param name="AppendToFile" value="true"/>
    		<param name="RollingStyle" value="Date"/>
    		<param name="DatePattern" value="yyyy.MM.dd"/>
    		<param name="StaticLogFileName" value="true"/>
    		<layout type="log4net.Layout.PatternLayout,log4net">
    			<param name="ConversionPattern" value="%d	%property{sessionid}	%property{username} - %m%n"/>
    		</layout>
    		<filter type="log4net.Filter.LevelRangeFilter">
    			<levelMin value="INFO" />
    			<levelMax value="INFO" />
    		</filter>
    	</appender>
    Tu noteras l'existance de la propriété threshold qui fixe la priorité
    pour la suite
    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
     
    	<mapping>
    			<level value="FATAL"/>
    			<eventLogEntryType value="Error"/>
    		</mapping>
    		<mapping>
    			<level value="ERROR"/>
    			<eventLogEntryType value="Error"/>
    		</mapping>
    		<mapping>
    			<level value="WARN"/>
    			<eventLogEntryType value="Warning"/>
    		</mapping>
    	</appender>
     
    	<root>
    		<priority value="DEBUG"/>
    		<appender-ref ref="errorFile"/>
        <!--<appender-ref ref="trace"/>-->
      </root>
    Tu noteras la présence des mappings et une priorité établie dans le root
    Enfin,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
     
     <logger name="monExtranet.uneLib">
        <level value="DEBUG"/>
        <appender-ref ref="trace"/>
        <appender-ref ref="debugFile"/>
        <appender-ref ref="trackingFile"/>
     
      </logger>
    On rajoute un loggueur ou X loggueur en fct des besoins
    Tiens moi informé

  8. #8
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 38
    Points : 25
    Points
    25
    Par défaut
    J'ai essayé en prenant les parties nécessaires de ta configuration mais ça ne veut pas marcher.

    Voici le fichier app.config :
    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
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <configSections>
        <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
          <!-- ... -->
          <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net-net-.0"/>
        </sectionGroup>
      </configSections>
      <applicationSettings>
        <!-- ... -->
        <log4net file="log.config"/>
      </applicationSettings>
      <appSettings>
        <!-- ... -->
      </appSettings>
    </configuration>

    Voici le fichier log.config :
    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
    <log4net>
      <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender,log4net" >
        <param name="threshold" value="INFO"/>
        <param name="File" value="logs/auth/yazman.txt" />
        <param name="AppendToFile" value="true" />
        <param name="RollingStyle" value="Date"/>
        <param name="StaticLogFileName" value="true"/>
        <layout type="log4net.Layout.PatternLayout,log4net">
          <param name="ConversionPattern" value="%d	%property{sessionid}	%property{username} - %m%n"/>
        </layout>
        <filter type="log4net.Filter.LevelRangeFilter">
          <levelMin value="INFO" />
          <levelMax value="INFO" />
        </filter>
      </appender>
     
      <root>
        <priority value="DEBUG"/>
        <appender-ref ref="errorFile"/>
        <!--<appender-ref ref="trace"/>-->
      </root>
     
      <logger name="monExtranet.uneLib">
        <level value="DEBUG"/>
        <appender-ref ref="trace"/>
        <appender-ref ref="debugFile"/>
        <appender-ref ref="trackingFile"/>
     
      </logger>
    </log4net>
    Et dans ma classe, je la déclare ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private static readonly ILog Log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

    Franchement, je ne vois pas trop d'où peut provenir le problème

  9. #9
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Essaye de remplacer:

    <appender-ref ref="errorFile"/>


    Par:

    <appender-ref ref="RollingLogFileAppender"/>


    Ce qui donne:

    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
     
    <log4net>
      <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender,log4net" >
        <param name="threshold" value="INFO"/>
        <param name="File" value="logs/auth/yazman.txt" />
        <param name="AppendToFile" value="true" />
        <param name="RollingStyle" value="Date"/>
        <param name="StaticLogFileName" value="true"/>
        <layout type="log4net.Layout.PatternLayout,log4net">
          <param name="ConversionPattern" value="%d	%property{sessionid}	%property{username} - %m%n"/>
        </layout>
        <filter type="log4net.Filter.LevelRangeFilter">
          <levelMin value="INFO" />
          <levelMax value="INFO" />
        </filter>
      </appender>
     
      <root>
        <priority value="DEBUG"/>
        <appender-ref ref="RollingLogFileAppender"/>
        <!--<appender-ref ref="trace"/>-->
      </root>
     
      <logger name="monExtranet.uneLib">
        <level value="DEBUG"/>
        <appender-ref ref="trace"/>
        <appender-ref ref="debugFile"/>
        <appender-ref ref="trackingFile"/>
     
      </logger>
    </log4net>

  10. #10
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 38
    Points : 25
    Points
    25
    Par défaut
    J'ai essayé et cela ne marche pas encore.

  11. #11
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 17
    Points : 21
    Points
    21
    Par défaut dernière chose au sujet des Levelmin et Levelmax
    Les propriétés LevelMax et min fixe les bornes du niveau de compétance de l'appender.
    Dit autrement, ds le cas ci-dessus, seuls des log.Info("...") fonctionneront, tu peux virer les Level min et max...

    N'as tu pas oublié de lancer la config en faisant au début de l'appli un truc du style :

    XmlConfigurator.Configure(new FileInfo(@"C:\classGen\classGen\classGen\App.config"));

    en remplçant bien sûr le chemin de ton app.config.

    En tout cas, j'ai un très modeste WIKI qui me permet surtout de faire des copy paste quand j'en ai besoin et qui traite de divers sujet .Net(nhibernate, etc...)
    vraiment pas pédagogique et pas encore exhaustif, mais je le vois comme une base de connaissance pour mémo
    http://www.imagine-chr.fr/wiki/doku.php

  12. #12
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 38
    Points : 25
    Points
    25
    Par défaut
    Lancer la config ?

    Si tu parles de log.config et bien il est déclaré dans l'assembly du projet .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [assembly: log4net.Config.XmlConfigurator(ConfigFile = "log.config", Watch = true)]

  13. #13
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 38
    Points : 25
    Points
    25
    Par défaut
    Bon, je n'ai pas encore trouvé la solution à mon problème. J'ai rajouté dans le main de l'application :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    static void Main()
            {
                log4net.Config.XmlConfigurator.ConfigureAndWatch(new System.IO.FileInfo(@"logConfig.XML"));
    // ...  }
    Et ça fonctionne pas encore

  14. #14
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 38
    Points : 25
    Points
    25
    Par défaut
    J'ai enfin trouvé la solution , j'ai remplacé dans l'assembly :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [assembly: log4net.Config.XmlConfigurator(ConfigFile = "log.config", Watch = true)]
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [assembly: log4net.Config.XmlConfigurator(Watch = true)]

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fichier log ne décrit pas le détail du page logée avec log4net
    Par Naceur84 dans le forum Framework .NET
    Réponses: 2
    Dernier message: 11/07/2011, 12h08
  2. comment créer une sortie XML avec log4net
    Par dalilnet dans le forum Langages
    Réponses: 3
    Dernier message: 05/07/2011, 13h27
  3. Utiliser une adresse relative avec log4net
    Par LecatEric dans le forum C#
    Réponses: 0
    Dernier message: 15/03/2011, 14h48
  4. Ecrire dans fichier avec Log4Net
    Par cd090580 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 05/12/2010, 17h01

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