Log4Net configuración – LevelMatchFilter

Como existen los siguientes niveles de log4net

  • TODOS
  • De DEPURACIÓN
  • INFO
  • ADVERTIR
  • ERROR
  • FATAL
  • FUERA

Puede alguien por favor decirme en log4net ¿cómo puedo entrar solo INFO & ERROR o de DEPURACIÓN & ERROR? Lo que quiero decir aquí es ser capaz de iniciar sesión en dos niveles diferentes que no están en secuencia?

Yo no puedo hacer si yo uso la siguiente debido a que los mensajes de advertencia se registrará así que no quiero:

<filter type="log4net.Filter.LevelRangeFilter">
    <acceptOnMatch value="true" />
    <levelMin value="INFO" />
    <levelMax value="ERROR" />
</filter>

OriginalEl autor iffi | 2011-10-11

4 Kommentare

  1. 26

    Uso LevelMatchFilter en conjunción con DenyAllFilter:

    <filter type="log4net.Filter.LevelMatchFilter">
      <acceptOnMatch value="true" />
      <levelToMatch  value="INFO" />
    </filter>
    <filter type="log4net.Filter.LevelMatchFilter">
      <acceptOnMatch value="true" />
      <levelToMatch  value="ERROR" />
    </filter>
    <filter type="log4net.Filter.DenyAllFilter" />
    Gracias por el ejemplo. Sólo para tu INFORMACIÓN, true es el valor predeterminado para acceptOnMatch así que esto va a funcionar igual de bien con las líneas de elide.
    Esto no funciona en el formulario e a todos con la versión más reciente de log4net.
    Lo que nadie ha dicho todavía es que el <filtro> etiquetas (como se muestra arriba) debe aparecer dentro de un <appender> etiqueta! Ver a mi adicionales en respuesta a continuación.

    OriginalEl autor iffi

  2. 3

    @BradLaney et al para quienes @iffi del fix no funciona , asegúrese de que la versión es al menos 1.2.11. Aquí está el informe de error:
    https://issues.apache.org/jira/browse/LOG4NET-137

    También si se establece con pérdida como true, se necesitaría un evaluador que LevelMatchFilter no es (es un filtro). Así que esto funciona para mí:

        <filter type="log4net.Filter.LevelMatchFilter">
          <param name="LevelToMatch" value="WARN" />
        </filter>
        <filter type="log4net.Filter.DenyAllFilter" />s a
    

    No me deja añadir un comentario.

    Gracias, funciona perfectamente!!

    OriginalEl autor Rair

  3. 3

    Lo que nadie ha dicho todavía es que la <filter> etiquetas (como se muestra en los ejemplos de arriba) debe aparecer dentro de un <appender> etiqueta! Por ejemplo (esto no es válido log4net de configuración-solo estoy mostrando cómo la <filter> etiqueta es una participación de un niño en virtud de <appender>:

    <configuration>
      <configSections>
        <section ...="" />
      </configSections>
      <startup>
        <supportedRuntime ...="" />
      </startup>
      <log4net>
        <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
          <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date{dd MMM yyyy HH:mm:ss} {%thread} %level - %message%newline%exception"/>
          </layout>
          <filter type="log4net.Filter.LevelMatchFilter">
            <acceptOnMatch value="true" />
            <levelToMatch  value="INFO" />
          </filter>
          <filter type="log4net.Filter.DenyAllFilter" />
        </appender>
        <root>
          <appender-ref ...="" />
        </root>
        <logger name="Log4NetTest.OtherClass">
          <level value="DEBUG"/>
          <appender-ref ref="ConsoleAppender"/>
        </logger>
      </log4net>
    </configuration>
    

    OriginalEl autor Jazimov

  4. 0

    tratar:

    <filter type="log4net.Filter.LevelRangeFilter">
        <levelToMatch value="INFO" />
        <acceptOnMatch value="true" />
    </filter>
    <filter type="log4net.Filter.LevelRangeFilter">
        <levelToMatch value="ERROR" />
        <acceptOnMatch value="true" />
    </filter>
    
    Gracias Mike. He intentado como usted dijo, no funcionó. Luego hice un poco más de investigación a lo largo de esas líneas y encontrar la solución. Vea la solución en la sección de respuestas. Gracias por la ayuda.

    OriginalEl autor mike01010

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea