Показать только выбранные отладочные операторы Log4j - PullRequest
7 голосов
/ 01 мая 2009

Можно ли отображать в консоли только те операторы, которые имеют определенные слова.

Для экв .:

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

Теперь, выполнив некоторую настройку или что-то еще, все операторы, начинающиеся с groovy: должны отображаться

Ответы [ 5 ]

8 голосов
/ 01 мая 2009

Вы хотите использовать log4j StringMatchFilter , который является частью пакета "extras" из журнала 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>
0 голосов
/ 29 мая 2009

SLF4J маркеры, возможно, подходят для ваших целей. Все методы печати, такие как отладка и информация в org.slf4j.Logger , допускают использование маркера в качестве первого параметра . Более того, logback-classic, собственная реализация SLF4J, поставляется с фильтром под названием MarkerFilter, который, я думаю, делает то, что вы хотите.

0 голосов
/ 01 мая 2009

Можно использовать инструмент для фильтрации сообщений. Для Windows вы можете сделать это с BareTail . Фильтрация сообщений возможна только с про (платной) версией. Возможно, есть другие инструменты, которые выполняют ту же работу.

0 голосов
/ 01 мая 2009

Можно использовать разные регистраторы (например, регистратор для сообщений «java» и один для «заводных» сообщений). Конфигурация Log4J может быть настроена на разные уровни для каждого регистратора.

Вы можете прочитать больше здесь

0 голосов
/ 01 мая 2009

Как насчет создания ваших таможенных уровней

public class Groovy extends Level

А затем в файле свойств журнала установите эти уровни в качестве вашей конфигурации

Надеюсь, это поможет, Дэвид.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...