Как установить DEBUG для вывода на консоль и INFO для моего FileAppender? - PullRequest
2 голосов
/ 31 марта 2010

Я еще не совсем разобрался с этим - как мне установить DEBUG для моего вывода на консоль и INFO для моего FileAppender? То есть, как бы я изменил конфигурацию ниже, чтобы ConsoleAppender мог выкачивать все логи из DEBUG и выше? Обратите внимание, что оба приложения должны охватывать все журналы (то есть я не хочу использовать элемент регистратора с областью действия, который изменяет уровень журнала только для одного имени регистратора).

  <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>

1 Ответ

10 голосов
/ 31 марта 2010

Попробуйте эту конфигурацию:

<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>

Примечание:

  • Я установил уровень майя для приложения-файла Fatal, чтобы ошибка также записывалась в ваш файл. Если это не то, что вы хотите, вы можете легко изменить его обратно.
  • Если вы хотите, чтобы в консоли были только сообщения DEBUG (т.е. нет информации, предупреждают ...), вам также необходимо отфильтровать приложение консоли.
...