Можно ли изменить уровень log4j в моих пакетах, но не изменить уровни в API, используя, например, Spring - PullRequest
0 голосов
/ 07 апреля 2011

Итак, у меня есть этот код:

public class LoggingManager {

Logger root = Logger.getRootLogger();

    public void setLogger(String fullClassName, String level) {

    LogManager.getLogger(fullClassName).setLevel(Level.toLevel(level));
}

public void logLevelAll(String level) {

    root.setLevel(Level.toLevel(level));
}
}

Моя проблема в этом. Первый метод принимает значения: p1: com.domain.data.Object и p2: DEBUG и изменяет уровень журнала этих классов на отладочный. Второй класс изменит каждый логгер в проекте, включая библиотеки, на которые ссылаются как пружины.

Я хочу создать метод, который только изменяет уровень регистрации моих пакетов. Так что меняйте com.domain. * Если хотите.

Можно ли это сделать?

Ответы [ 2 ]

3 голосов
/ 07 апреля 2011

Просто установите уровень журнала для com.domain.По умолчанию каждый регистратор наследует уровень журнала от своего родительского регистратора.

1 голос
/ 07 апреля 2011

Просто понял это. Вот полный ответ, который я получил для других:

Log4j предоставляет корневой регистратор по умолчанию, от которого наследуются все пользовательские регистраторы. Корневой регистратор находится на вершине иерархии регистратора; другими словами, root logger является либо родителем, либо предком всех созданных объектов logger.

Например: класс 'MyClass' в пакете приложения com.domain.sampleapp может иметь регистратор с именем com.domain.sampleapp.MyClass, который вы можете использовать моим методом выше для установки класса:

LogManager.getLogger ( "com.domain.sampleapp.MyClass") setLevel (Level.toLevel ( "DEBUG"));.

Но вы также можете установить уровень журнала пакетов следующим образом:

LogManager.getLogger ( "com.domain.sampleapp") setLevel (Level.toLevel ( "DEBUG"));.

И, наконец, вы можете установить целую группу пакетов (т. Е. Весь проект), используя:

LogManager.getLogger ( "com.domain") setLevel (Level.toLevel ( "DEBUG"));.

...