Снижение уровня журнала в Eclipse WTP с Tomcat 7

Я запускаю Tomcat 7 из Eclipse WTP (Juno) и не могу настроить уровень ведения журнала. Он регистрирует все из отладки, которая слишком многословна, чтобы ее можно было использовать (я хочу, чтобы она регистрировалась из INFO). Файл logging.properties выглядит следующим образом:

handlers =  java.util.logging.ConsoleHandler

.handlers = java.util.logging.ConsoleHandler

.level=INFO

############################################################
# Handler specific properties.
# Describes specific configuration info for Handlers.  
############################################################

java.util.logging.ConsoleHandler.level = INFO
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

person pgpython    schedule 23.01.2013    source источник
comment
Вы решили эту проблему? У меня такая же проблема с моим eclipse + wtp...   -  person Al Phaba    schedule 14.10.2013


Ответы (3)


Добавление оба в соответствии с часто задаваемыми вопросами, которые Том Чатт цитирует:

-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djava.util.logging.config.file="${workspace_loc}/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/conf/logging.properties"

к аргументам конфигурации запуска сервера вы получите то, что хотите. ${workspace_loc} буквально; Eclipse заменит его каталогом вашей рабочей области. tmp0 может быть tmp1 или чем-то подобным; используйте тот же путь, что и в конфигурации сервера. Предполагается, что вы поместили туда файл logging.properties, конечно. Таким образом, вы увидите файл в окне Project Explorer в разделе Servers. Вы должны начать с копирования одного из каталога Tomcat conf.

Все это предполагает, что вы намерены использовать JULI.

У меня работает с Tomcat 8.0 и Eclipse Mars. Не знаю, почему это не сработало для Тома. Я видел ClassNotFounds по очевидной причине, когда использовал неправильное имя класса из чьего-то поста.

Я бы посоветовал не использовать подход Тома Чатта, так как это повлияет на все другие способы использования этой JVM.

person Mike    schedule 10.12.2015
comment
это лучший ответ. это в основном ошибка, так как это должно быть поведением по умолчанию для сервера tomcat на wtp - person MitchBroadhead; 12.05.2016
comment
Мне нужно было только добавить -Djava.util.logging.config.file=... с небольшой настройкой (в моем случае у меня был tmp1, так как у меня было настроено несколько экземпляров сервера), и это сработало. Мне не нужно было добавлять -Djava.util.logging.manager. Как и в комментарии выше, я не понимаю, почему это не является частью конфигурации по умолчанию. - person oᴉɹǝɥɔ; 26.10.2018

У меня была такая же проблема, когда я хотел настроить уровни ведения журнала Tomcat 7 в Eclipse WTP. Я попытался поместить logging.properties в каталог /src моего веб-приложения. Нет эффекта. Я попытался изменить файл logging.properties в каталоге /conf моей установки Tomcat, но это тоже не помогло. Я обнаружил «теневую» область Tomcat Eclipse WTP в каталоге моей рабочей области, в .metadata/.plugins/org.eclipse.wst.server.core/tmp0, и поместил файл logging.properties в каталог /conf там. Нет эффекта.

Я обнаружил ряд статей (например, эти вопросы и ответы на eclipse.org), отмечая что в то время как Tomcat в «реальной жизни» автоматически запускается с менеджером ведения журналов под названием «JULI», по какой-то причине Tomcat, работающий внутри Eclipse WTP, не работает с JULI. я пытался добавить

-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager

к аргументам виртуальной машины в моей конфигурации запуска Tomcat, но это только что привело к ошибкам ClassNotFound. (И да, у меня был tomcat-juli.jar в моем пути к классам, поэтому я понятия не имею, почему он его не нашел.)

Наконец, мне пришло в голову попробовать изменить экземпляр logging.properties в моем jdk jre/lib. Джекпот! Оказывается, именно это влияет на ведение журнала Tomcat-in-Eclipse. Итак, мораль этой длинной истории заключается в том, что если все, что вы хотите сделать, это просто настроить ведение журнала во время работы в Eclipse с помощью простого небольшого утверждения, например:

myapp.mypackage.level=FINE

Тогда $JAVAHOME/lib/logging.properties — это место для его размещения.

person Tom Chatt    schedule 07.06.2014
comment
Кроме того, убедитесь, что соответствующий корневой уровень и уровни ConsoleAppender не отфильтровывают его, то есть .level=FINE и java.util.logging.ConsoleHandler.level = FINE - person Adam; 22.09.2014

Чтобы решить эту проблему, я следовал руководству tomcat log4j по адресу http://tomcat.apache.org/tomcat-7.0-doc/logging.html. Это заставит tomcat использовать log4j.

Затем настройте конфигурацию log4j в $CATALINA_HOME/lib.

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">


   <appender name="null" class="org.apache.log4j.varia.NullAppender" />

   <appender name="console" class="org.apache.log4j.ConsoleAppender">
    <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d %-5p [%c] %m%n" />
    </layout>
</appender>

<category name="org.package.domain">
    <priority value="INFO" />
    <appender-ref ref="console" />
 </category>

 </log4j:configuration>
person pgpython    schedule 15.10.2013