2017-10-30 4 views
1

私はロギングルーチンを保持するInterfaceを実装しています。したがって、私はインターフェイス内でロガーを「キャッシュ」したいと思っています。Java "Cache" SLF4J Logger in Interface

このようになります。

import org.slf4j.Logger; 
import org.slf4j.LoggerFactory; 
import java.util.function.Supplier; 

interface ILogger { 


    public static final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); 


    default void debug() { 
     // do sth with logger 
    } 
} 

しかし、これは静的メソッドでは使用できません。

私のロガーをフィールドに保存するにはどうすればいいですか?デバッグ方法を使用するたびにルックアップする必要はありませんか?

答えて

2

は名前を取得するには、静的なクラス参照を使用します。

interface ILogger { 
    Logger logger = LoggerFactory.getLogger(ILogger.class.getName()); 

    default void debug(String message) { 
     logger.debug(message); 
    } 
} 
+0

おかげで、これは:-)私の作品 –

関連する問題