Выход Log4j не отображается в консоли Eclipse - PullRequest
25 голосов
/ 17 августа 2010

По какой-то причине моя консоль Eclipse больше не отображает инструкции Log4j INFO и DEBUG, когда я запускаю тесты JUnit.С точки зрения кода никаких изменений не произошло, поэтому это должно быть как-то связано с конфигурацией Eclipse.

Все, что я делаю в своем модульном тесте, заключается в следующем, и по какой-то причине ТОЛЬКО утверждение ERROR отображаетсяконсоль Eclipse.Зачем?Где мне искать улики?

public class SampleTest
{
   private static final Logger LOGGER = Logger.getLogger(SampleTest.class);

   @Before
   public void init() throws Exception
   {
       // Log4J junit configuration.
       BasicConfigurator.configure();

       LOGGER.info("INFO TEST");
       LOGGER.debug("DEBUG TEST");
       LOGGER.error("ERROR TEST");
   }
}

Подробности:

  • log4j-1.2.6.jar
  • junit-4.6.jar Eclipse
  • IDE для разработчиков Java, версия: Helios Release, идентификатор сборки: 20100617-1415

Ответы [ 17 ]

0 голосов
/ 19 июня 2015

Окно консоли Eclipse имеет свойство Filter (в некоторых случаях активен только system.err).

Щелкните правой кнопкой мыши в окне консоли Eclipse -> Настройки -> Консоль и убедитесь, что флажок

Показывается, когда программа выполняет запись в стандартный вывод

активен.

В качестве альтернативы вы можете настроить log4j на запись в System.err всегда так:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
    <appender name="AppConsole" class="org.apache.log4j.ConsoleAppender">
        <param name="Target" value="System.err" />
        <param name="Encoding" value="ISO-8859-15" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern"
                value="%d{dd.MM.yyyy HH:mm:ss} %5p kontext.%c{1}:%L - %m%n" />
        </layout>
    </appender>
    <root>
        <level value="debug" />
        <appender-ref ref="AppConsole" />
    </root>
</log4j:configuration> 
0 голосов
/ 13 апреля 2015

У меня была такая же ошибка.

Я использую Jboss 7.1 AS. В файле конфигурации - standalone.xml отредактируйте следующий тег. (остановите свой сервер и отредактируйте)

     <root-logger>
            <level name="ALL"/>
            <handlers>
                <handler name="CONSOLE"/>
                <handler name="FILE"/>
            </handlers>
    </root-logger>

ALL имеет наименьший возможный ранг и предназначено для включения всей регистрации.

0 голосов
/ 15 апреля 2014

Есть дело, которое я делаю: где-то произошло исключение, но я поймал исключение, ничего не печатая, таким образом, код даже не достиг кода log4j, поэтому нет вывода.

0 голосов
/ 17 августа 2010

Убедитесь, что ваши log4j.properties или log4j.xml скопированы в ваш путь к классу IDE и загружаются при вызове BasicConfigurator.configure()

0 голосов
/ 09 декабря 2015

, если файл log4j.xml отсутствует в проекте, и вы используете tomcat, попробуйте перейти к экземпляру tomcat и найти log4j.Попробуйте изменить уровень consoleAppender для отладки и повторного развертывания приложения в tomcat.Это может помочь.

0 голосов
/ 16 ноября 2016

Моя ситуация была решена путем указания аргумента VM для отлаживаемой JAVA-программы. Я полагаю, вы также можете установить это в файле eclipse.ini:

enable-debug-level-in-eclipse

0 голосов
/ 01 июля 2013

Однажды у меня возникла такая проблема, когда я загружал библиотеку Amazon из Amazon (для веб-сервисов Amazon), и этот файл jar содержал log4j.properties и каким-то образом использовался вместо моего старого доброго, самонастроенного log4j.Стоит проверить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...