我正在实现一个包含日志记录例程的接口。因此,我想在接口内“缓存”记录器。
看起来像这样。
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
}
}
但我不能在静态方法中使用它。
如何将记录器存储在字段中,所以每次使用调试方法时都不需要查找它?
答案 0 :(得分:4)
使用静态类引用获取名称:
interface ILogger {
Logger logger = LoggerFactory.getLogger(ILogger.class.getName());
default void debug(String message) {
logger.debug(message);
}
}