Pregunta

¿Es posible mostrar solo aquellas declaraciones en la consola que tienen ciertas palabras?

Para eq:

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

Ahora, al hacer alguna configuración o lo que sea, se deben mostrar todas las declaraciones que comienzan con groovy:

¿Fue útil?

Solución

Desea utilizar log4j StringMatchFilter que forma parte de los "extras" paquete del registro de apache.

Aquí se muestra un ejemplo rápido en línea :

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

Otros consejos

¿Qué hay de crear tus niveles de aduana?

public class Groovy extends Level

Y luego, en el archivo de propiedades del registro, establezca esos niveles como su configuración

Espero que esto ayude, David.

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

Puede leer más aquí

Uno podría usar una herramienta para filtrar mensajes. Para Windows, puede hacer esto con BareTail . El filtrado de mensajes solo es posible con la versión pro (de pago). Quizás hay otras herramientas que hacen el mismo trabajo.

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.Logger admite un marcador como primer parámetro . Además, logback-classic, una implementación nativa de SLF4J, se envía con un filtro llamado MarkerFilter que creo que hace lo que usted quiere.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top