接口中的Java“Cache”SLF4J Logger

时间:2017-10-30 23:10:31

标签: java caching logging interface slf4j

我正在实现一个包含日志记录例程的接口。因此,我想在接口内“缓存”记录器。

看起来像这样。

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

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

如何将记录器存储在字段中,所以每次使用调试方法时都不需要查找它?

1 个答案:

答案 0 :(得分:4)

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

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

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