2009-05-01 19 views
7

¿Es posible visualizar solo aquellas declaraciones en la consola, que tienen ciertas palabras?Mostrar solo las sentencias de depuración de Log4j seleccionadas

Para eq:

logger.debug ("java: hello "); 
    logger.debug ("groovy: hello "); 
    logger.debug ("ruby: hello "); 

Ahora, haciendo una cierta configuración o lo que sea, todas las declaraciones que están empezando con el maravilloso: deben mostrar.

Respuesta

8

Usted desea utilizar el log4j StringMatchFilter que es parte del paquete de "extras" de registro de Apache.

Aquí está un ejemplo rápido encontró online:

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> 
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> 
    <appender name="CustomAppender" class="org.apache.log4j.RollingFileAppender"> 
    <param name="File" value="custom.log"/> 
    <param name="Append" value="true"/> 
    <param name="MaxFileSize" value="5000KB"/> 
    <param name="maxBackupIndex" value="5"/> 
      <layout class="org.apache.log4j.PatternLayout"> 
        <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p - %m%n" /> 
      </layout> 

      <filter class="org.apache.log4j.varia.StringMatchFilter"> 
        <param name="StringToMatch" value="Here is DEBUG" /> 
        <param name="AcceptOnMatch" value="true" /> 
      </filter> 

      <filter class="org.apache.log4j.varia.DenyAllFilter"/> 
    </appender> 

    <root> 
    <appender-ref ref="CustomAppender"/> 
    </root> 
</log4j:configuration> 
+0

Parece interesante, ¿podría explicarlo? –

0

¿Qué hay de crear sus niveles de aduana

public class Groovy extends Level 

Y luego en el registro de propiedades archivo de conjunto de esos niveles como la configuración de su

espero que esta ayuda, David.

+0

Gracias David, pero realmente, no quiero nada de eso. –

0

Uno puede usar diferentes registradores (digamos un registrador para mensajes "java" y uno para mensajes "groovy"). La configuración de Log4J se puede establecer con diferentes niveles para cada registrador.

Puede leer más here

0

Se podría utilizar una herramienta para filtrar los mensajes. Para Windows, puede hacer esto con BareTail. El filtrado de mensajes solo es posible con la versión pro (paga). Tal vez hay otras herramientas que hacen el mismo trabajo.

0

Los marcadores SLF4J son quizás adecuados para sus propósitos. Todos los métodos de impresión como depuración e información en org.slf4j.Loggeradmit a Marker as a first parameter. Además, logback-classic, una implementación SLF4J nativa, viene con un filtro llamado MarkerFilter que creo que hace lo que usted quiere.

Cuestiones relacionadas