Разрешить регистратору переопределить параметр конкретного аппендера? - PullRequest
0 голосов
/ 16 июля 2010

Используя log4net, могу ли я настроить регистратор так, чтобы он мог переопределять один параметр одного из дополнений?Вот несколько примеров:

<log4net>
  <appender name="A1" type="log4net.Appender.FileAppender">
    <file value="log4net.log">
  </appender>
  <root>
    <level value="ERROR" />
    <appender-ref ref="A1" />
  </root>
  <logger name="MyLogger">
    <level value="WARN" />
    <appender-ref ref="A1">
      <file value="MyLogger.Log"/>
    </appender-ref>
  </logger>
</log4net>

Например, я бы хотел настроить один из моих сублогеров для отправки вывода в файл, отличный от остальной части моего приложения.Я иду неправильным путем?Должен ли я настроить его с новым appender?Как насчет отправки разных уровней разным аппендерам?например,

<log4net>
  <appender name="default" type="log4net.Appender.FileAppender">
    <file value="My.log">
  </appender>
  <appender name="errors" type="log4net.Appender.FileAppender">
    <file value="Errors.log">
  </appender>
  <root>
    <level value="DEBUG">
      <appender-ref ref="default" />
    </level>
    <level value="ERROR">
      <appender-ref ref="errors" />
    </level>
  </root>
</log4net>

Ответы [ 2 ]

0 голосов
/ 20 июля 2010

Я добавил это как новый ответ, так как он слишком длинный, чтобы поместиться в комментарии.

Попробуйте что-то вроде


        <appendToFile value="true" />

        <layout type="log4net.Layout.PatternLayout">
            <header value="[Header]%date&#13;&#10;" />
            <footer value="[Footer]%date&#13;&#10;" />
            <conversionPattern value="%date [%thread] %-5level %logger [%ndc] &lt;%property{auth}&gt; - %message%newline" />
        </layout>
    </appender>

    <appender name="MyLogger" type="log4net.Appender.FileAppender">
        <file type="log4net.Util.PatternString" value="MyLogger.Log" />

        <appendToFile value="true" />

        <layout type="log4net.Layout.PatternLayout">
            <header value="[Header]%date&#13;&#10;" />
            <footer value="[Footer]%date&#13;&#10;" />
            <conversionPattern value="%date [%thread] %-5level %logger [%ndc] &lt;%property{auth}&gt; - %message%newline" />
        </layout>
    </appender>


    <!-- Setup the root category, add the appenders and set the default level -->
    <root>
        <level value="INFO" />
        <appender-ref ref="A1" />
    </root>

    <logger name="SpecialMethod">
        <level value="DEBUG" />
        <appender-ref ref="MyLogger" />
    </logger>

</log4net
0 голосов
/ 19 июля 2010

Я использую что-то похожее на ваш первый XML-файл.(С Log4net для C #)

Не думаю, что второй XML будет работать, потому что, как я понимаю, он будет интерпретировать <level value="DEBUG"> как , устанавливая уровень ведения журнала в DEBUG, тогда какВы хотите, чтобы это интерпретировалось как

  if (Level == DEBUG) ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...