java - 得到一个虚拟的 slf4j 记录器?

标签 java slf4j null-object-pattern

我可以从 slf4j 获得虚拟记录器吗? (想想空对象设计模式。)如果是这样,有人可以提供一个例子吗?或者,如果我想这样做,我是否必须实现自定义记录器?

我希望按照以下方式编写一个函数

private Logger logger;
static Logger nullLogger;

static {
    nullLogger = getMeADummyLogger();
}

public Logger getLogger() {
    return this.logger == null ? nullLogger : this.logger;
}

// then, elsewhere:
this.getLogger().info("something just happened");

如果没有设置记录器,则不会在最后一行得到 NullPointerException

最佳答案

使用NOPLogger :

return this.logger == null ? NOPLogger.NOP_LOGGER : this.logger; 

关于java - 得到一个虚拟的 slf4j 记录器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5389137/

相关文章:

java - 如何继承 DefaultTableModel 并更改其 dataVector

java - 为什么 Spring Integration 故障转移不显示异常

java - 执行Maven插件目标时如何获取所有设置的参数?

java - 在java中自动化单元测试用例

java - 使用 EJB 3.0 初始化 log4j 的最佳方法是什么?

java - 注释方法的任何工具,以便该方法不产生日志

c# - 为什么作为 webView2 对象的 coreWebView2 为空?

ruby - 只是为了好玩 - 我可以为特定用途编写自定义 NilClass 吗?

scala - 使用事件处理程序配置 akka 记录器的记录器名称

design-patterns - Fowler 空对象模式 : Why use inheritance?