2010-11-11 3 views
1

J'ai configuré mon application à utiliser log4net comme suit:Niveau de journalisation ne fonctionne pas

<log4net> 
    <appender name="SQL_Comandos" type="log4net.Appender.AdoNetAppender"> 
     <bufferSize value="100" /> 
     <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
     <connectionString value="X" /> 
     <commandText value="INSERT INTO X ([Date],[Thread],[Level],[Logger],[Message],[Exception],[Usuario]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception, @usuario)" /> 
     <parameter> 
     <parameterName value="@log_date" /> 
     <dbType value="DateTime" /> 
     <layout type="log4net.Layout.RawTimeStampLayout" /> 
     </parameter> 
     <parameter> 
     <parameterName value="@thread" /> 
     <dbType value="String" /> 
     <size value="255" /> 
     <layout type="log4net.Layout.PatternLayout"> 
      <conversionPattern value="%thread" /> 
     </layout> 
     </parameter> 
     <parameter> 
     <parameterName value="@log_level" /> 
     <dbType value="String" /> 
     <size value="50" /> 
     <layout type="log4net.Layout.PatternLayout"> 
      <conversionPattern value="%level" /> 
     </layout> 
     </parameter> 
     <parameter> 
     <parameterName value="@logger" /> 
     <dbType value="String" /> 
     <size value="255" /> 
     <layout type="log4net.Layout.PatternLayout"> 
      <conversionPattern value="%logger" /> 
     </layout> 
     </parameter> 
     <parameter> 
     <parameterName value="@message" /> 
     <dbType value="String" /> 
     <size value="4000" /> 
     <layout type="log4net.Layout.PatternLayout"> 
      <conversionPattern value="%message" /> 
     </layout> 
     </parameter> 
     <parameter> 
     <parameterName value="@exception" /> 
     <dbType value="String" /> 
     <size value="2000" /> 
     <layout type="log4net.Layout.ExceptionLayout" /> 
     </parameter> 
     <parameter> 
     <parameterName value="@usuario" /> 
     <dbType value="String" /> 
     <size value="50" /> 
     <layout type="log4net.Layout.PatternLayout"> 
      <conversionPattern value="%X{usuario}" /> 
     </layout> 
     </parameter> 
    </appender> 
    <appender name="SQL_Hibernate" type="log4net.Appender.AdoNetAppender"> 
     <bufferSize value="100" /> 
     <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
     <connectionString value="X" /> 
     <commandText value="INSERT INTO X ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" /> 
     <parameter> 
     <parameterName value="@log_date" /> 
     <dbType value="DateTime" /> 
     <layout type="log4net.Layout.RawTimeStampLayout" /> 
     </parameter> 
     <parameter> 
     <parameterName value="@thread" /> 
     <dbType value="String" /> 
     <size value="255" /> 
     <layout type="log4net.Layout.PatternLayout"> 
      <conversionPattern value="%thread" /> 
     </layout> 
     </parameter> 
     <parameter> 
     <parameterName value="@log_level" /> 
     <dbType value="String" /> 
     <size value="50" /> 
     <layout type="log4net.Layout.PatternLayout"> 
      <conversionPattern value="%level" /> 
     </layout> 
     </parameter> 
     <parameter> 
     <parameterName value="@logger" /> 
     <dbType value="String" /> 
     <size value="255" /> 
     <layout type="log4net.Layout.PatternLayout"> 
      <conversionPattern value="%logger" /> 
     </layout> 
     </parameter> 
     <parameter> 
     <parameterName value="@message" /> 
     <dbType value="String" /> 
     <size value="4000" /> 
     <layout type="log4net.Layout.PatternLayout"> 
      <conversionPattern value="%message" /> 
     </layout> 
     </parameter> 
     <parameter> 
     <parameterName value="@exception" /> 
     <dbType value="String" /> 
     <size value="2000" /> 
     <layout type="log4net.Layout.ExceptionLayout" /> 
     </parameter> 
    </appender> 
    <root> 
     <level name="INFO" /> 
     <appender-ref ref="SQL_Comandos" /> 
    </root> 
    <logger name="NHibernate" additivity="false" > 
     <level name="ERROR" /> 
     <appender-ref ref="SQL_Hibernate" /> 
    </logger> 

Ils fonctionnent parfaitement, mais toute exploitation forestière sauve des messages de débogage, même ayant configuré pour ne pas le faire. Qu'est-ce que j'oublie ici?

Répondre

3

Il devrait fonctionner lorsque vous configurez comme ceci:

<logger name="NHibernate" additivity="false" > 
    <level value="ERROR" /> 
    ... 

Note: que j'utilise valeur au lieu de nom dans le nœud de niveau (le faire pour l'élément racine « niveau » et). Activer le débogage interne révélerait ce genre de problème.

+0

qui l'a fait, merci. La prochaine fois je serai conscient d'utiliser le débogage interne! – viniciushana

1

Juste une pensée, vérifiez vos appenders journaux pour voir si elles ont quelque chose comme configuré:

<filter type="log4net.Filter.LevelRangeFilter"> 
    <levelMin value="ALL"/> 
</filter> 
+0

Hmm, pas vraiment, ils n'ont aucun filtre. – viniciushana

+0

@scardazzi - hmm ... pouvez-vous poster la configuration complète de log4net? – Kev

+0

Voilà, j'ai édité la question avec la configuration complète. – viniciushana

0

DEBUG est un niveau inférieur INFO, donc je suppose que les messages de débogage sont enregistrés parce que la root logger est configuré pour se connecter au niveau INFO. Voir this post si vous souhaitez obtenir les messages INFO mais pas les messages DEBUG.

+0

Je crois que DEBUG est un niveau plus élevé, en fait. – viniciushana

+0

Confirmation: il va les niveaux, classés par ordre de priorité: – viniciushana

+0

TOUS DEBUG INFO WARN ERREUR FATALE OFF – viniciushana

Questions connexes