Как отключить саморекламу JooQ в 3.4+?
Я большой поклонник 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);
});
}
к сожалению, это не работает, сообщение все еще появляется.
Как сделать так, чтобы это сообщение исчезло без изменения кода, которого я хочу избежать здесь?
4 ответов
Это, кажется, работает для меня:
static {
LogManager.getLogManager().reset();
}
Это также указано как решение пару раз в этом вопросе переполнения стека.
обратите внимание, что версия 3.6+ также будет поставляться с системное свойство, которое можно использовать для деактивации отображения этого логотипа:
-Dorg.jooq.no-logo=true
это сообщение находится в org.jooq.impl.DefaultRenderContext исходный файл и с помощью org.jooq.Константы!--6--> регистратор. Вот соответствующий исходный код:
/* [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] */
похоже, что сообщение генерируется, потому что вы используете пробную версию. Я бы предположил, что обновление до версии pro отключит сообщение. Что еще может быть лучше, чтобы показать, что вы большой поклонник проекта?
в противном случае, если вы можете жить с вины и стыда, вы можете отключить информационные сообщения из организации.jooq.Константы logger, установив уровень предупреждения.
Это можно сделать, добавив следующее к вашему журналу.свойства:
#ThanksNoThanks
org.jooq.Constants.level=WARNING
или в коде Java, вызывая следующие методы:
//SorryNotSorry
Logger.getLogger("org.jooq.Constants").setLevel(Level.WARNING);
убедитесь, что вы остаетесь в соответствии с лицензией jOOQ и Соглашением об обслуживании:
jOOQ License and Maintenance Agreement:
* -----------------------------------------------------------------------------
* Data Geekery grants the Customer the non-exclusive, timely limited and
* non-transferable license to install and use the Software under the terms of
* the jOOQ License and Maintenance Agreement.
*
* This library is distributed with a LIMITED WARRANTY. See the jOOQ License
* and Maintenance Agreement for more details: http://www.jooq.org/licensing
*/
В случае, если вы используете org.slf4j.Logger
для входа в ваш resources/logback.xml
можно добавить что-то вроде этого
<logger name="org.jooq" level="warn" additivity="false">
<appender-ref ref="STDOUT" />
</logger>