获取一个虚拟 slf4j 记录器?

发布于 2024-10-25 07:27:18 字数 441 浏览 5 评论 0原文

我可以从 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 。

Can I get a dummy logger from slf4j? (Think the null object design pattern.) If so, can someone provide an example? Or will I have to implement a custom logger if I want to do that?

I'm hoping to write a function along the lines of

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");

and not get a NullPointerException on that last line if no logger has been set.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

两个我 2024-11-01 07:27:18

使用NOPLogger

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

Use NOPLogger:

return this.logger == null ? NOPLogger.NOP_LOGGER : this.logger; 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文