Как отключить ведение журналов вызовов методов в slf4j? - PullRequest
0 голосов
/ 01 ноября 2011

Пожалуйста, посмотрите на этот пример:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class Test {
   public static void main(String[] args) {
      Logger log = LoggerFactory.getLogger(Test.class);
      log.info("Hello World");
   }
}

Программа генерирует следующий вывод:

2011-11-01 13:06:05 Test main
INFO: Hello World

Как избавиться от первой строки?Как настроить Logger не показывать вызовы методов?

slf4j использует jdk14 в моем приложении.Кроме того, у меня есть два обработчика, поэтому было бы неплохо, если бы существовал способ отключить ведение журнала вызовов методов только для одного обработчика.

1 Ответ

0 голосов
/ 01 ноября 2011

Обе строки генерируются при вызове log.info. Кажется, формат по умолчанию для реализации логгера генерирует разрывы строк. «Запись метода» никоим образом не производит никакого вывода.

Чтобы было ясно: если вы регистрируетесь дважды, как в

log.info("Hello World1");
log.info("Hello World2");

Я ожидаю этот вывод:

2011-11-01 13:06:05 Test main
INFO: Hello World1
2011-11-01 13:06:05 Test main
INFO: Hello World2

О, а общий способ настройки Java-Util-Logging для вашего JDK описан здесь:

http://download.oracle.com/javase/1.4.2/docs/guide/util/logging/overview.html

Вам нужно будет заглянуть в раздел «Форматтеры» и внедрить свой собственный форматер (AFAIK). Или просто используйте удобную реализацию ведения журнала за slf4j, например logback или log4j.

...