Pb avec Log4net [Résolu]

Signaler
Messages postés
71
Date d'inscription
jeudi 9 décembre 2004
Statut
Membre
Dernière intervention
7 décembre 2007
-
cs_Bidou
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
-
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
<log4net>
"RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="C:\\Logs\" />
<datePattern value="yyyyMM\\yyyyMMdd.lo\g" />
<rollingStyle value="Date" />
"true" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<staticLogFileName value="false" />
<filter type="log4net.Filter.LevelRangeFilter">
"true" />
<levelMin value="DEBUG" />
<levelMax value="FATAL" />
</filter>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%-5level %date [%file:%line] - %message%newline"/>
</layout>

<root>
<level value="DEBUG" />
refref="RollingLogFileAppender" />
</root>
</log4net>

Et dans la classe je le déclare ainsi :
privatestaticreadonly ILog Log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

J'espère que vous pouvez m'aider. Merci.
A voir également:

15 réponses

Messages postés
71
Date d'inscription
jeudi 9 décembre 2004
Statut
Membre
Dernière intervention
7 décembre 2007

Problème enfin résolu ,

J'ai remplacé dans l'assembly :

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log.config", Watch = true)]

Par :

[assembly: log4net.Config.XmlConfigurator(Watch = true)]
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32
humm... j'ai du doute sur la ligne
private static readonly ILog Log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

pour moi le GetLogger prend en paramètre le nom du logger déclaré dans le app.config

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Messages postés
860
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
17
Il ne faut pas mettre le chemin complet du fichier de log dans le noeud <file value="C:\\Logs\" /> qui a mettre le pattern ici.

Ceci pourrait expliquer cela ?

Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32
voici une config qui fonctionn

  <log4net>


    [mailto:paris_bfi_compliance_list@bnpparibas.com ...]" />
      <subject value="..." />
      <smtpHost value="..." />
     
      <lossy value="false" />


      <layout type="log4net.Layout.PatternLayout" >
        <conversionPattern value="%-5p %d %5rms %c %C.%M  - line %L - [%m] %n" />
       
       
      </layout>
   


    <logger name="TOP">
      <level value="ALL" />
      blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Messages postés
71
Date d'inscription
jeudi 9 décembre 2004
Statut
Membre
Dernière intervention
7 décembre 2007

Merci pour votre aide.

Pour le moment, je n'ai pas pu encore trouvé une solution.
J'ai essayé la configuration qui fonctionne normalement mais rien n'a changé. En effet, je voulais envoyé mon log par mail en remplissant les différentes valeurs (to, from, smtp, ...) mais je n'ai pas reçu de mail.

Concernant la déclaration du log dans ma classe et bien j'ai essayé avec cette déclaration :
private static readonly ILog Log = LogManager.GetLogger("TOP");
vu que mon logger dans log.config a pour libellé "TOP".
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32
as-tu une erreur ?
si oui, laquelle ?

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Messages postés
71
Date d'inscription
jeudi 9 décembre 2004
Statut
Membre
Dernière intervention
7 décembre 2007

J'exécute normalement l'application et je n'ai pas d'erreur. J'ai seulement un avertissement qui m'indique : "L'élément 'log4net' n'est pas déclaré."
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32
et dans ton app.config tu as ajouté la "déclaration" de log4net ?

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Messages postés
71
Date d'inscription
jeudi 9 décembre 2004
Statut
Membre
Dernière intervention
7 décembre 2007

Je n'ai pas ajouté la déclaration de log4net dans l'app.config. Comment le faire ?
Messages postés
71
Date d'inscription
jeudi 9 décembre 2004
Statut
Membre
Dernière intervention
7 décembre 2007

Je viens de tester en rajoutant dans la partie section de mon app.config ce code :

<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />

Mais malheureusement, ça marche pas encore.

 
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32
ajoute ceci dans la partie section :

<

sectionname="
log4net"
type="
log4net.Config.Log4NetConfigurationSectionHandler,log4net-net-1.0"
/>
et ceci plus bas :

<

log4net file="log.config" />

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Messages postés
71
Date d'inscription
jeudi 9 décembre 2004
Statut
Membre
Dernière intervention
7 décembre 2007

Bon voici le code d'app.config pour le moment :
<?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-1.0"/>
    </sectionGroup>
  </configSections>
 
      <!-- ... -->
      <log4net file="log.config"/>
 

    <!-- ... -->
</configuration>

Sinon pour le log.config voici le code :
<log4net>
 
   
   
   
   
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%-5p %d %5rms %c %C.%M  - line %L - [%m] %n" />
     
     
    </layout>
    <maximumFileSize value="1024KB" />
    <maxSizeRollBackups value="2" />
 
<root>
    <level value="DEBUG" />
   
  </root>
 
    <logger name="TOP">
      <level value="ALL" />
     
    </logger>


  </log4net>

Pour le moment, cette configuration ne fonctionne pas et je ne comprends pas pourquoi. 

C'est possible que quelqu'un essai ma configuration ?
Messages postés
71
Date d'inscription
jeudi 9 décembre 2004
Statut
Membre
Dernière intervention
7 décembre 2007

Je n'ai pas encore résolu mon problème. Dans ce temps, j'ai trouvé que je dois ajouter dans le main de l'application un bout de code que j'ai rajouté
staticvoid Main()
        {
            log4net.Config.XmlConfigurator.ConfigureAndWatch(new System.IO.FileInfo(@"logConfig.XML"));
// ...  
      }

Mais malheureusement, cela ne fonctionne pas encore.
Messages postés
10
Date d'inscription
mercredi 7 décembre 2005
Statut
Membre
Dernière intervention
28 décembre 2008

Tant mieux pour toi ahikaz,
j'ia le meme probleme que toi, sauf que moi je n'ai pas la classe XmlConfigurator (log4net.Config.XmlConfigurator) dans la dll log4net (version log4net-1.1.1) que j'ai téléchargé dans le site "appache.org" .
Est ce que tu as la meme version, sinon ou est ce que tu as téléchargé ton framework?
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
44