2009-04-13 7 views
2

J'ai activé log4net et exécuté mon application qui donne une exception.NHibernate Activation de log4net

Mais le fichier journal est vide.

Ne pas NHibernate informations sur l'exception?

Malcolm

+1

suspect nous pourrions avoir besoin d'un peu plus d'infos .... –

Répondre

5

Vous devez configurer log4net. Juste en ajoutant log4net dll au projet ne rien enregistrer. Vous devez créer des extensions pour spécifier où tout le loggin doit être dirigé. Créez un fichier xml comme celui-ci:

 

<log4net> 
    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> 
     <file value="Logs\Trace.log" /> 
     <appendToFile value="true" /> 
     <rollingStyle value="Composite" /> 
     <maxSizeRollBackups value="30" /> 
     <maximumFileSize value="1000KB" /> 
     <layout type="log4net.Layout.PatternLayout"> 
      <conversionPattern value="%date [%thread] %-5level - %message%newline" /> 
     </layout> 
     <threshold value="DEBUG"/> 
    </appender> 
    <root> 
     <appender-ref ref="RollingFileAppender" /> 
    </root> 
</log4net> 
 

... et le configurer lors du démarrage de l'application:

 

    public static void Main() 
    { 
     var logconfig = new System.IO.FileInfo(PATH_TO_LOG_CONFIG); 
     if(logconfig.Exists) 
     { 
      log4net.Config.XmlConfigurator.ConfigureAndWatch(logconfig); 
     } 
    } 
 
+0

Hadi, comment ce travail dans la mesure où les tests unitaires où il n'y a pas de Main? Utilisation de TestDriven.Net par exemple –

+1

Pourquoi ne pas configurer Log4Net dans votre configuration de test (par exemple, classe de base) pour créer un ConsoleAppender et rediriger tous les messages de journal vers la console? La plupart des coureurs d'essai les affichent d'une manière ou d'une autre. –