-1

内部クラスがあり、ロガーを追加したいと考えています。現在、コンストラクターを介して追加しています。

私の外側のクラス(春豆)には次のものがあります:

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

私の内部クラスには次のものがあります:

private final static class car {

    final Logger LOGGER;

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

}

上記が好きではありません。これを機能させる他の方法はありますか?

4

3 に答える 3

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);
    }
}
于 2013-03-05T10:36:56.240 に答える
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);
        }
    }
于 2013-03-05T10:38:29.253 に答える
0

共有したい場合は、外部クラスに渡されたのと同じロガーを要求できます。

private final Logger LOGGER = LoggerFactory.getLogger(OuterClass.class);
于 2013-03-05T10:38:51.320 に答える