如何在3.4+中禁用JooQ的自我广告消息?

fge*_*fge 27 java logging jooq

我是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
Run Code Online (Sandbox Code Playgroud)

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

请注意,我不使用slf4j,也不使用log4j或任何日志API; 因此,我唯一可用的机制是jul

我试图使用它完全禁用它:

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);
    });
}
Run Code Online (Sandbox Code Playgroud)

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

如何在修改代码时使这条消息消失,我想避免在这里?

Luk*_*der 19

这似乎对我有用:

static {
    LogManager.getLogManager().reset();
}
Run Code Online (Sandbox Code Playgroud)

在Stack Overflow问题中,这也被解决了几次解决方案.

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

-Dorg.jooq.no-logo=true
Run Code Online (Sandbox Code Playgroud)


mev*_*hee 8

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

System.getProperties().setProperty("org.jooq.no-logo", "true");
Run Code Online (Sandbox Code Playgroud)


jme*_*ens 6

该消息位于org.jooq.impl.DefaultRenderContext源文件中,它使用org.jooq.Constants记录器.这是相关的源代码:

    /* [trial] */ 
    JooqLogger l = JooqLogger.getLogger(Constants.class); 
    String message;
    message = "Thank you for using jOOQ " + Constants.FULL_VERSION;

    /* [pro] xx 
    xxxxxxx x xxxxxx xxx xxx xxxxx xxx xx xxx xxxx xxxx x x xxxxxxxxxxxxxxxxxxxxxx x x xxxxx xxxxxxxxx 
    xx [/pro] */ 
Run Code Online (Sandbox Code Playgroud)

看起来因为您使用的是试用版而生成了消息.我认为升级到专业版会禁用该消息.还有什么可以更好地表明你是该项目的忠实粉丝?

否则,如果您可以忍住内疚和羞耻,可以通过将级别设置为WARNING来禁用org.jooq.Constants记录器中的信息消息.

这可以在您的logging.properties中添加以下内容:

#ThanksNoThanks
org.jooq.Constants.level=WARNING
Run Code Online (Sandbox Code Playgroud)

或者通过调用以下方法在Java代码中:

__CODE__

确保您遵守您的jOOQ许可和维护协议:

//SorryNotSorry
private static final JOOQ_AD_LOGGER = Logger.getLogger("org.jooq.Constants");
static {
   JOOQ_AD_LOGGER.setLevel(Level.WARNING);
}
Run Code Online (Sandbox Code Playgroud)

  • 我是粉丝,是的,当然也宣传我正在使用它......在项目页面上.但这是实时代码,我想保持日志清洁! (3认同)
  • *“确保您遵守jOOQ许可和维护协议” *-完全可以,只要这是有关ASL 2.0许可的jOOQ开源版的,您可以执行任何您想做的事情。*“如果您可以忍受内和羞愧” *-[嗯...;)](http://i.imgur.com/fnm5KAb.jpg) (2认同)