8

是否可以在控制台中仅显示具有某些单词的语句。

对于当量:

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

现在,通过进行一些配置或其他操作,所有以 groovy: 开头的语句都应该显示出来。

4

5 回答 5

8

您想使用 log4j StringMatchFilter,它是 apache 日志记录的“附加”包的一部分。

这是一个在网上找到的简单示例:

<?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>
于 2009-05-01T08:06:02.910 回答
0

SLF4J 标记可能适合您的目的。所有打印方法(例如调试和信息)都org.slf4j.Logger 允许将标记作为第一个参数。此外,原生 SLF4J 实现 logback-classic 附带一个过滤器MarkerFilter,我认为它可以满足您的需求。

于 2009-05-29T13:57:17.823 回答
0

如何创建您的海关关卡

public class Groovy extends Level

然后在日志属性文件中将这些级别设置为您的配置

希望这会有所帮助,大卫。

于 2009-05-01T08:03:38.063 回答
0

可以使用不同的记录器(比如一个记录“java”消息的记录器和一个记录“groovy”消息的记录器)。Log4J 配置可以为每个记录器设置不同的级别。

你可以在这里阅读更多

于 2009-05-01T08:03:58.903 回答
0

可以使用一种工具来过滤掉消息。对于 Windows,您可以使用BareTail执行此操作。只有专业(付费)版本才能过滤消息。也许还有其他工具可以完成同样的工作。

于 2009-05-01T08:07:51.453 回答