Zeigt nur ausgewählte Log4j Debug-Anweisungen
Frage
Ist es möglich, nur die Aussagen in der Konsole angezeigt werden, die bestimmte Wörter haben.
Für eq:
logger.debug ( "java: hello " );
logger.debug ( "groovy: hello " );
logger.debug ( "ruby: hello " );
Nun, durch eine Konfiguration zu tun oder was auch immer, alle Aussagen, die sich mit groovigen beginnen: sollte angezeigt werden.
Lösung
Sie möchten die log4j StringMatchFilter , die Teil der "Extras" Paket von apache Logging ist.
Hier ist ein kurzes Beispiel gefunden Online href="http://www.webdeveloper.com/forum/showthread.php?t=91074":
<?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>
Andere Tipps
Was ist erstellen Sie Ihren Zoll Level
public class Groovy extends Level
Und dann in der Log-Eigenschaften diese Werte als Konfigurationssatzdatei
Hope, das hilft, David.
Man kann verschiedene Logger verwenden (zB ein Logger für „java“ Nachrichten und eine für „groovy“ -Nachrichten). Die Log4J Konfiguration kann mit verschiedenen Ebenen für jeden Logger eingestellt werden.
Sie können mehr lesen hier
Man könnte ein Tool verwenden, um Nachrichten herauszufiltern. Für Windows können Sie dies tun, mit BareTail . Filtern von Nachrichten ist nur möglich mit dem Pro (gegen Entgelt) Version. Vielleicht gibt es andere Tools, die die gleiche Arbeit tun.
SLF4J Marker sind für Ihre Zwecke vielleicht geeignet. Alle Druckverfahren wie debug und Informationen in org.slf4j.Logger
zugeben eine Markierung als ersten Parameter . Außerdem logback-Klassiker, ein gebürtiger SLF4J Implementierung, Schiffe mit einem Filter namens MarkerFilter
was ich denke, das tut, was Sie wollen.