Java "Cache" 界面中的 SLF4J 记录器

Java "Cache" SLF4J Logger in Interface

我正在实现一个包含日志例程的接口。因此我想 "cache" 界面内部的记录器。

看起来像这样。

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
    }
}

但我不能在静态方法中使用它。

如何将我的记录器存储在字段中,这样我就不必每次使用调试方法时都查找它?

使用静态 class 引用获取名称:

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

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