2 Stimmen

Wie stelle ich DEBUG für meine Konsolenausgabe und INFO für meinen FileAppender ein?

Ich habe diese Frage noch nicht ganz geklärt - wie setze ich DEBUG für meine Konsolenausgabe und INFO für meinen FileAppender? Das heißt, wie ändere ich die Konfiguration unten, so dass ich den ConsoleAppender dazu bringe, alle Protokolle von DEBUG aufwärts auszugeben? Beachten Sie, dass beide Appenders alle Logging abdecken müssen (d.h. ich möchte nicht ein scoped Logger-Element verwenden, das die Log-Ebene für nur einen Logger-Namen ändert).

  <log4net>

    <root>
      <level value="INFO" />
      <appender-ref ref="LogFileAppender" />
      <appender-ref ref="ConsoleAppender" />
    </root>

    <appender name="LogFileAppender" type="log4net.Appender.FileAppender" >
      <param name="File" value="log-file.txt" />
      <param name="AppendToFile" value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <param name="Header" value="[Header]\r\n"/>
        <param name="Footer" value="[Footer]\r\n"/>
        <param name="ConversionPattern"
           value="%d [%t] %-5p %c [%x] - %m%n"
        />
      </layout>
      <filter type="log4net.Filter.LevelRangeFilter">
        <param name="LevelMin" value="DEBUG" />
        <param name="LevelMax" value="WARN" />
      </filter>
    </appender>

    <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" >
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
      </layout>
    </appender>

  </log4net>

11voto

Stefan Egli Punkte 17178

Versuchen Sie diese Konfiguration:

<log4net>

  <root>
    <level value="DEBUG" />
    <appender-ref ref="LogFileAppender" />
    <appender-ref ref="ConsoleAppender" />
  </root>

  <appender name="LogFileAppender" type="log4net.Appender.FileAppender" >
    <param name="File" value="log-file.txt" />
    <param name="AppendToFile" value="true" />
    <layout type="log4net.Layout.PatternLayout">
      <param name="Header" value="[Header]\r\n"/>
      <param name="Footer" value="[Footer]\r\n"/>
      <param name="ConversionPattern"
        value="%d [%t] %-5p %c [%x] - %m%n"
      />
    </layout>
    <filter type="log4net.Filter.LevelRangeFilter">
      <param name="LevelMin" value="INFO" />
      <param name="LevelMax" value="FATAL" />
    </filter>
  </appender>

  <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" >
    <layout type="log4net.Layout.PatternLayout">
      <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
    </layout>
  </appender>

</log4net>

Nota:

  • Ich habe den May-Level des File Appenders auf Fatal gesetzt, so dass Fehler auch in Ihre Datei geschrieben werden. Wenn das nicht das ist, was Sie wollen, können Sie es leicht zurück ändern.
  • Wenn Sie nur DEBUG-Meldungen (d.h. keine Info-, Warn-...) in der Konsole haben wollen, müssen Sie auch den Konsolen-Appender filtern.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X