如何在3.4+中禁用JooQ的自拍消息?

2022-09-01 04:21:33

我是JooQ的忠实粉丝,但不幸的是,自从从3.3升级以来,它每次在我的代码退出之前都会在控制台上打印一条非常烦人的消息:

Feb 02, 2015 7:28:06 AM org.jooq.tools.JooqLogger info
INFO: 

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
<snip>
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  Thank you for using jOOQ 3.5.1

不幸的是,我根本无法删除此日志。

请注意,我没有使用slf4j,也没有使用log4j或任何日志API;因此,我唯一可用的机制是j.u.l。

我试图用这个完全禁用它:

static {
    Stream.of(Logger.getAnonymousLogger(), Logger.getGlobal(),
        Logger.getLogger("org.jooq.tools.JooqLogger")
    ).forEach(l -> {
        l.setLevel(Level.OFF);
        final Handler[] handlers = l.getHandlers();
        Arrays.stream(handlers).forEach(l::removeHandler);
    });
}

不幸的是,它不起作用,消息仍然出现。

如何使此消息在修改代码的情况下消失,我想在这里避免这种情况?


答案 1

这似乎对我有用:

static {
    LogManager.getLogManager().reset();
}

在此堆栈溢出问题中,这也被指示为解决方案几次。

请注意,版本 3.6+ 还将附带一个系统属性,可用于停用显示此徽标

-Dorg.jooq.no-logo=true

答案 2

在 v3.6 及更高版本上,您可以执行以下操作:

System.setProperty("org.jooq.no-logo", "true");

推荐