簡體   English   中英

僅顯示選定的Log4j調試語句

[英]Display only selected Log4j debug statements

是否可以僅在控制台中顯示具有特定單詞的那些語句。

對於eq:

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

現在,通過執行某些配置或其他任何操作,應顯示以groovy開頭的所有語句。

您想使用log4j StringMatchFilter ,它是來自apache日志記錄的“extras”包的一部分。

這是在線發現的一個簡單示例:

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

如何創建您的習俗級別

public class Groovy extends Level

然后在日志屬性文件中將這些級別設置為您的配置

大衛,希望這會有所幫助。

可以使用不同的記錄器(比如說“java”消息的記錄器和“groovy”消息的記錄器)。 可以為每個記錄器設置不同級別的Log4J配置。

你可以在這里閱讀更多

可以使用工具來過濾掉消息。 對於Windows,您可以使用BareTail執行此操作 只有pro(付費)版本才能過濾消息。 也許還有其他工具可以完成同樣的工作。

SLF4J標記可能適合您的用途。 org.slf4j.Logger所有打印方法(如debug和info) org.slf4j.Logger 允許將Marker作為第一個參數 此外,logback-classic是一個原生SLF4J實現,附帶一個名為MarkerFilter的過濾器,我認為它MarkerFilter您的需求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM