2016-12-27 8 views
1

私はlog4jの新機能です。私がインターネットで読んでいるように、子ロガーは親ロガー設定を継承しています。通常、同じパッケージ内の2つのクラスの例が示されています。しかし、クラスが異なるパッケージに含まれる場合はどうなりますか?異なるパッケージで例えば異なるパッケージ間の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>を適用する必要があります。

mypackage.Barのカスタム<logger>を定義しない限り、<root>もそのクラスに適用されます。それは設定をログに記録するとなるとは別に、それらの両方が<root>MyAppBarによって支配されるという事実から

は無関係です。

関連する問題