2013-10-09 3 views
0

Я только начинаю с того, что пытаюсь использовать набор инструментов весны v3.4.0 под oracle java 7u40 на Ubuntu Desktop AMD64 13.10 Однако, когда я запускаю приложение из командной строки, я получаю следующее предупреждение:Предупреждение при запуске набора инструментов весны

log4j: WARN Для регистратора не найдено никаких приложений (org.springsource.ide.eclipse.commons.core.templates.TemplateProcessor). log4j: WARN Пожалуйста, правильно инициализируйте систему log4j.

Возможно, мне нужно настроить log4j.properties, но я не уверен, где и как я связываю конфигурацию с STS. Кто-нибудь получил log4j.properties для STS и как связать его с запуском STS.

Я попытался следующий log4j2.xml

<?xml version="1.0" encoding="UTF-8"?> 
<configuration status="OFF"> 
    <appenders> 
    <Console name="Console" target="SYSTEM_OUT"> 
     <PatternLayout pattern="%d{HH:mm:ss} [%t] %-5level %logger{36} - %msg%n"/> 
    </Console> 
    </appenders> 
    <loggers> 
    <root level="trace"> 
     <appender-ref ref="Console"/> 
    </root> 
    </loggers> 
</configuration> 

И добавил следующую переменную окружения:

export JAVA_OPTS=-Dlog4j.configurationFile=~/Log4j/log4j2.xml 

Однако, я все еще получаю такое же предупреждение при запуске STS.

+0

Вы не связываете файл свойств log4j. Вы помещаете его в путь класса, и Spring обнаруживает его во время выполнения. –

+0

Как? Я загрузил фреймворк log4j, и он находится в моем пути к классам. –

+0

Это не то, что я имею в виду. Вам нужно создать файл свойств и поместить его в путь класса. Если он находится в правильном месте (прочитайте документацию), он будет автоматически обнаружен. –

ответ

1

У вас есть несколько вариантов:

  1. указать местоположение файла конфигурации log4j в файловой системе. Путь в файле: URL-адрес должен быть абсолютным. В Windows, файлы: URL-адреса начинаются с «file: /» или «file: ///», а символы «/» заменяют символы «\» в пути. Ваша линия будет:

    export JAVA_OPTS=-Dlog4j.configurationFile=file:/path/to/your/log4j2.xml 
    
  2. Укажите расположение конфигурационного файла log4j относительно записи CLASSPATH. Если «/ путь/к/вашему /» каталог находится на пути к классам вашей линия будет:

    export JAVA_OPTS=-Dlog4j.configurationFile=log4j2.xml 
    
  3. Укажите расположение файла конфигурации LOG4J, который будет использоваться для всех виртуальных машин. Ваша линия будет:

    export _JAVA_OPTIONS=-Dlog4j.configurationFile=file:/path/to/your/log4j2.xml 
    
  4. Укажите расположение файла конфигурации log4j в командной строке Java для вашего приложения. Ваша линия будет:

    -Dlog4j.configurationFile=file:/path/to/your/log4j2.xml 
    

В своем вопросе вы не указали, какие приложения вы работаете, но эти варианты будут все работать.

Если вы пытаетесь указать конфигурацию log4j для использования в приложении, запущенном в контейнере JEE, например. веб-приложение, пожалуйста, обратитесь к log4j documentation.

Я надеюсь, что это поможет вам.

0

Мое первоначальное предположение и ответ были неверными.

Установка опции JVM -Dlog4j.debug = true показывает, что Eclipse игнорирует свойство log4j.configurationFile и ищет либо путь к log4j.xml, либо logj.properties по пути к классам.

Я не знаю, как изменить системный путь класса для Eclipse, поэтому я поместил конфигурацию log4j в поддерживаемый каталог JRE.Шаги:

  1. Поместите свой файл конфигурации log4j в файле фляги, скажем log4jconfig.jar
  2. Поместите этот файл фляги в одобренном каталоге JRE в. В моей системе Windows 7 это «... \ JDK1.7.0 \ jre \ lib \ endorsed». Если каталог не существует, создайте его.

Конфигурация log4j я использовал:

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> 
<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'> 

    <appender name="Console" class="org.apache.log4j.ConsoleAppender"> 
     <param name="Threshold" value="ALL" /> 
     <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%d{HH:mm:ss} [%t] %-5level %logger{36} - %msg%n" /> 
     </layout> 
    </appender> 

    <root> 
     <level value="all" /> 
     <appender-ref ref="Console" /> 
    </root> 

</log4j:configuration> 

Я надеюсь, что это помогает.

Смежные вопросы