2013-03-05 31 views
0

我有一個內部類,我想添加一個記錄器,目前它正在通過構造函數添加它。添加一個最終的記錄器到一個內部靜態類..如何?

我的外部類(春豆),有以下幾點:

private final Logger LOGGER = LoggerFactory.getLogger(getClass()); 

我的內部類有以下幾點:

private final static class car { 

    final Logger LOGGER; 

    public car(Logger LOGGER) { 
    this.LOGGER = LOGGER; 
    } 

} 

我不喜歡上面是有任何其他方式來解決這個?

回答

2

你可以這樣做:

public class Foo 
{ 
    private final Logger logger = LoggerFactory.getLogger (getClass()); 

    private static class Bar 
    { 
     private final Logger logger = Foo.this.logger; 
    } 
} 

,但更好的辦法很可能會做的事:

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

    private static class Bar 
    { 
     private final static Logger logger = LoggerFactory.getLogger (Bar.class); 
    } 
} 
+0

+1符合最佳標準。 @ user1555190您的記錄器應始終反映它從中記錄的類。否則,您將從類「Bar」中記錄,但輸出結果會顯示爲「Foo」。 – ninnemannk 2013-03-05 20:34:33

0
private final static Logger LOGGER = LoggerFactory.getLogger(getClass()); 

private final static class Car { 
    void drive() { 
     LOGGER.debug(msg); 
    } 
} 

private final Logger LOGGER = LoggerFactory.getLogger(getClass()); 

    private final static class Car { 
     private final Logger LOGGER = LoggerFactory.getLogger(Car.class); 

     void drive() { 
      LOGGER.debug(msg); 
     } 
    } 
0

你可以要求相同如果分享是你的話,那麼這個記錄器會被傳遞給外部類請注意:

private final Logger LOGGER = LoggerFactory.getLogger(OuterClass.class); 
相關問題