Вопрос в том, почему вам нужно отключить его так?
Этого не нужно, поэтому я предполагаю, что здесь находится настоящая проблема. Есть ли какая-то неисправность? Потому что, если этого не происходит, почему бы не просто указать категорию регистратора freemarker
, которая будет проигнорирована в конфигурации вашего регистратора? Это нормальный способ сделать это, FreeMarker или нет.
В любом случае, в 2.3.22 (выпуск ожидается в начале 2015 года) вы можете использовать -Dorg.freemarker.loggerLibrary=none
, где вы запускаете JVM (то есть вы устанавливаете системное свойство org.freemarker.loggerLibrary
). В противном случае, если вы могли бы назвать этот метод в ServletContextListener
, это, безусловно, достаточно рано.
Update:
Реагируя на комментарии ... в большинстве случаев вы будете иметь 3-библиотеки, которые используют различные протоколировании "рамку", как SLF4J, Викисклад вырубка, ИЮЛ, Log4j, Log4j2. Таким образом, вы должны убедиться, что все они перенаправляются в одну библиотеку журналов, что, безусловно, является Log4j2 в вашем случае. Я подозреваю, что это неправильно сделано в вашем случае, поэтому теперь несколько библиотек журналов регистрируются на консоли, каждая со своими настройками конфигурации.
FreeMarker 2.3.x использует Log4j 1.x, если обнаруживает, что присутствует org.apache.log4j.Logger
. Другие библиотеки журналов, которые он также может обнаруживать и использовать (Log4j2 не входит в их число) имеют более низкий приоритет. (FreeMarker 2.4.x всегда будет использовать SLF4J, если он присутствует.) Таким образом, если вы добавите org.apache.logging.log4j:log4j-1.2-api
к своим зависимостям, тогда FM будет использовать org.apache.log4j.Logger
, и поэтому log4j-1.2.-api
перенаправит сообщения журнала FM в Log4j2. Это сработало для меня с этой конфигурацией Log4j2:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %logger{36} - %msg%n" />
</Console>
</Appenders>
<Loggers>
<Root level="debug">
<AppenderRef ref="Console" />
</Root>
<Logger name="freemarker" level="off">
<AppenderRef ref="Console" />
</Logger>
</Loggers>
</Configuration>
Ум ... Если вам, ребята, нужно решение, тогда, возможно, вам стоит уточнить, в чем проблема, вместо того, чтобы просто голосовать. И, если это ошибка или какая-то несовместимость, я также могу ее исправить. – ddekany
Спасибо! вызывается из 'ServletContextListener'. Не знаю, почему, но я не могу настроить его в log4j2.xml, чтобы его игнорировать, проверял каждую вещь, которую я нашел в Интернете. звучит как freemarker, игнорирует мою конфигурацию log4j2 ... поэтому отключить от «ServletContextListener» пока единственный вариант. –
Woops! В первый раз, когда я увидел ответ от мобильного приложения, я увидел, что у него есть один downvote, теперь с рабочего стола я хочу принять ответ и upvote, я вижу, что я был downvote, это была наверняка ошибка, но это не позволит меня переверните или удалите, cuz его через 3 часа ... –