2016-12-27 3 views
1

Я новичок в log4j. Когда я читаю в Интернете, дочерний логгер наследует настройки родительского регистратора. Обычно приводятся примеры для двух классов в одном пакете. Но что, если классы будут в разных пакетах? Напримерlog4j иерархия между различными пакетами

import com.foo.Bar; 

public class MyApp{ 
    static Logger logger = Logger.getLogger(MyApp.class); 

    public static void main(String[] args) { 
     BasicConfigurator.configure(); // default logging level is debug 
     Bar bar = new Bar(); 
     bar.doIt(); 
    } 
} 

и второй класс в другом пакете

package mypackage; 
import org.apache.log4j.Logger; 

public class Bar { 
    static Logger logger = Logger.getLogger(Bar.class); 

public void doIt() { 
    logger.debug("Did it again!"); 
    } 
} 

Так что будет уровень регистратора в классе Bar?

ответ

0

MyApp в пакете по умолчанию. Обратите внимание, что не рекомендуется использовать пакет по умолчанию, как было указано в этом question.

Я думаю, что невозможно установить пользовательский <logger> для пакета по умолчанию, поэтому он должен быть применен к <root>.

Если вы не определили пользовательский номер <logger> для mypackage.Bar, <root> также относится к этому классу.

Помимо того, что они оба могут управляться <root>, MyApp и Bar не связаны, когда дело доходит до конфигурации журнала.

Смежные вопросы