Где правильное место для размещения Log4j.properties в проекте Eclipse?

Где в моем проекте Eclipse я должен добавить файл log4j.properties, чтобы он работал по назначению?

Ответ 1

вы можете добавить его туда, где хотите, при запуске проекта, настройке пути к классам и добавлении местоположения файлов log4j.properties, нажав на: Run- > Run Configuration → [tabpath tab] → щелкните по пользовательским записям → Дополнительно → Выберите Добавить папку → выберите местоположение файла log4j.properties

а затем → OK → запустить

и он должен быть загружен

Ответ 2

Самый безопасный способ IMO - указать файл в вашей конфигурации run/debug

-Dlog4j.configuration=file:mylogging.properties

! Помните: при использовании конфигураций запуска eclipse спецификация протокола file: является обязательной.

Таким образом, логгер не поймает никаких параметров logging.properties, которые предшествуют в пути к классам или по умолчанию в JDK.

Также рассмотрим на самом деле использование log4j.xml, который имеет более богатый синтаксис выражений и позволит больше вещей (log4j.xml имеет приоритет над log4j.properties.

Ответ 3

Добавьте файл log4j.properties в путь класса выполнения проекта. Некоторые люди добавляют это в корень исходного дерева (так что он копируется в корень скомпилированных классов).

Edit: Если ваш проект является проектом maven, вы можете поместить log4j.properties в папку src/main/resources (и src/test/resources для ваших модульных тестов).

Если у вас есть несколько сред (например, разработка и производство), хотите различную регистрацию для каждой среды, и хотите развернуть один и тот же файл (или войну или ухо) в каждую среду (как в одной сборке для всех сред) затем сохраните файл log4j.properties за пределами файла jar и поместите его в путь класса для каждой среды (настраиваемый по среде). Исторически я бы включил некоторый известный каталог в каждую среду в пути к классам и размещал там специфические для среды среды. Например, ~ tomcat_user/localclasspath где ~ tomcat_user - это домашний каталог пользователя, в котором будет запущен экземпляр tomcat, в который будет развернут мой файл войны.

Ответ 4

Лучший способ - создать специальную исходную папку с именем resources и использовать ее для всех ресурсов, включая log4j.properties. Итак, просто положите его туда.

В папке Ресурсы Java, которая была автоматически создана динамическим веб-проектом, щелкните правой кнопкой мыши и добавьте новую исходную папку и назовите ее "ресурсы". Затем файлы будут экспортированы в файл войны в каталог классов

Ответ 6

Этот вопрос уже ответил здесь

Путь к классам никогда не включает определенные файлы. Он включает в себя каталоги и файлы jar. Итак, поместите этот файл в каталог, который находится в вашем classpath.

Log4j свойства не используются (обычно) при разработке приложений (если вы не отлаживаете сам Eclipse!). Итак, что вы действительно хотите создать исполняемое Java-приложение (приложение, WAR, EAR или что-то еще) и включите свойства Log4j в путь к среде выполнения.

Ответ 7

Если у вас есть библиотека, и вы хотите добавить log4j:

  • Создайте в своем проекте папку с именем "resources".
  • Создайте файл .properties с именем log4j
  • Установить свойства в файле log4j.properties
  • Нажмите правую кнопку в проекте и перейдите в свойства- > Java Build Path и, наконец, перейдите на вкладку "Источник".
  • Нажмите "Добавить папку" и найдите папку "resources", созданную на шаге 1.
  • Готово.

(Я предположил, что вы добавили библиотеку log4j.)

PD: Извините за мой английский.

Ответ 8

В общем, я помещаю его в специальную папку "res" или "ресурсы как уже сказано, но после веб-приложения я копирую log4j.properties с задачей ant в каталог WEB-INF/classes. Это то же самое, что разрешить файл в корне директории src/, но обычно я предпочитаю видеть его в выделенной папке.

С Maven, обычное место для размещения находится в папке src/main/resources, как было сказано в этом другом сообщении. Все ресурсы там подойдут к вашей сборке в корневом пути пути (например, target/classes/)

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

Ответ 9

Я выясню, что расположение файла log4j.properties зависит от типа проекта Eclipse.

В частности, для динамического веб-проекта Eclipse большинство ответов, связанных с добавлением log4j.properties в военный файл, фактически не добавляют файл свойств в нужное место, особенно для Tomcat/Apache.

Вот некоторые из моих исследований и мое решение проблемы (опять же специально для динамического веб-проекта, запущенного на Tomcat/Apache 6.0)

  • Обратитесь к этой статье о том, как Tomcat будет загружать классы. Он отличается от обычного загрузчика классов для Java. (https://www.mulesoft.com/tcat/tomcat-classpath) Обратите внимание, что он выглядит только в двух местах в военном файле, WEB-INF/classes и WEB-INF/lib.

  • Обратите внимание, что с помощью Dynamic Web Project нецелесообразно хранить ваш файл .properties в каталоге build/../classes, так как этот каталог очищается всякий раз, когда вы очищаете свой проект.

  • Tomcat не обрабатывает файлы .property в местоположении WEB-INF/lib.

  • Вы не можете сохранить файл log4j.properties в каталоге src, так как Eclipse абстрагирует эту директорию от вашего представления.

  • Единственный способ, который я нашел для решения этой проблемы, - это изменить сборку и добавить дополнительный каталог, который в конечном итоге загрузится в каталог WEB-INF/classes в военном файле. В частности....

(1) Щелкните правой кнопкой мыши свой проект в проводнике проекта, выберите "Создать" → "Папка". Вы можете назвать папку чем угодно, но стандартом в этом случае является "ресурсы". Новая папка должна появиться на корневом уровне вашего проекта.

(2) Переместите файл log4j.properties в эту новую папку.

(3) Щелкните правой кнопкой мыши проект еще раз и выберите "Построить путь" → "Настроить путь сборки". Выберите вкладку "Источники". Нажмите кнопку "Добавить папку". Найдите свою новую папку, созданную на шаге (1) выше. Выберите "ОК".

(4) Вернемся к представлению Project Explorer Project затмения, отметим, что папка теперь перемещена в область "Ресурсы Java" (т.е. она больше не находится в корне из-за абстракции презентации eclipse).

(5) Очистите свой проект.

(6) Чтобы проверить, что файл .properties существует в WEB-INF/classes в вашем военном файле, экспортируйте файл войны в удобное место (щелкните правой кнопкой мыши Project → Export → War file) и проверьте содержимое, Обратите внимание, что файл log4j.properties теперь отображается в классах WEB-INF/.

(7) Содействуйте проекту Tomcat/Apache и обратите внимание, что теперь работает log4j.

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

Ответ 10

Вы не хотите, чтобы лог4j.properties, упакованный в ваш проект, был доступен для развертывания - это плохая идея, о чем говорили другие плакаты.

Найдите корневую установку Tomcat, на которую указывает Eclipse, когда она запускает ваше приложение, и добавьте файл log4j.properties в нужное место. Для Tomcat 7, правильное место -

${TOMCAT_HOME}/Библиотека