Согласованность класса ведения журнала - PullRequest
1 голос
/ 30 марта 2011

Я некоторое время неофициально пользовался Log4j и теперь переключаюсь на Logback. Я привык использовать Spiffy до , чтобы мой класс регистрации соответствовал .

т.е. вместо

private static final Logger log = Logger.getLogger( Foo.class );

или

private final Logger log = Logger.getLogger( this.getClass() );

Я

private static final Logger log = LoggerHelper.getLogger();

Есть ли подобный способ сделать это в Logback? Я не знаю, как Спифи делает то, что делает на этом этапе, я просто использую это.

Ответы [ 2 ]

3 голосов
/ 30 марта 2011

Spiffy's LoggerHelper использует метод Throwable.getStackTrace . К сожалению, этот метод не является надежным на 100%. Из javadocs:

Некоторые виртуальные машины могут, под некоторыми обстоятельства, пропустите один или несколько стеков кадры из трассировки стека.

Другими словами, Spiffy's LoggerHelper может возвращать неправильно именованные регистраторы. Если это произойдет, возникновение будет очень трудно отладить.

3 голосов
/ 30 марта 2011

Обычно вы не используете logback напрямую, но через slf4j . Вот как это используется:

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

class A
{
    private static final Logger logger = LoggerFactory.getLogger(A.class);

    public void method1()
    {
        logger.info("Hello world");
        ....
    }
}

Затем во время развертывания вы можете поместить файлы jar и конфигурацию в ваш путь к классам, чтобы использовать его.

...