Domanda

È possibile visualizzare solo quelle istruzioni nella console, che contengono determinate parole.

Per eq:

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

Ora, eseguendo una configurazione o qualsiasi altra cosa, tutte le istruzioni che iniziano con groovy: dovrebbero essere visualizzate.

È stato utile?

Soluzione

Desideri utilizzare log4j StringMatchFilter che fa parte del " extra " pacchetto dalla registrazione di Apache.

Ecco un breve esempio trovato 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>

Altri suggerimenti

Che ne dici di creare i tuoi livelli doganali

public class Groovy extends Level

E quindi nel file delle proprietà del registro impostare tali livelli come configurazione

Spero che questo aiuti, David.

Uno può usare diversi logger (diciamo un logger per i messaggi "java" e uno per i messaggi "groovy"). La configurazione di Log4J può essere impostata con livelli diversi per ciascun logger.

Puoi leggere di più qui

Uno potrebbe usare uno strumento per filtrare i messaggi. Per Windows puoi farlo con BareTail . Il filtro dei messaggi è possibile solo con la versione pro (a pagamento). Forse ci sono altri strumenti che fanno lo stesso lavoro.

I marcatori SLF4J sono forse adatti ai tuoi scopi. Tutti i metodi di stampa come debug e informazioni in org.slf4j.Logger ammette un Marker come primo parametro . Inoltre, logback-classic, un'implementazione nativa di SLF4J, viene fornita con un filtro chiamato MarkerFilter che penso faccia quello che vuoi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top