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


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

10 54

10 ответов:

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

а затем - > OK - > run

и он должен напиться

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

-Dlog4j.configuration=file:mylogging.properties

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

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

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

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

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

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

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

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

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

  1. создайте папку с именем "ресурсы" в вашем проекте.
  2. создать .файл свойств с именем log4j
  3. задать свойства в файле log4j. properties
  4. нажмите правую кнопку в проекте и перейдите в свойства - > путь сборки Java и, наконец, перейдите на вкладку "источник".
  5. нажмите Добавить папку и найдите папку "ресурсы", созданную на шаге 1.
  6. готово.

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

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

на этот вопрос уже дан ответ здесь

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

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

Put log4j.properties в пути к классам выполнения.

этой форуме показывает некоторые сообщения о возможных способах сделать это.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

(6) для проверки этого .файл свойств теперь существует в WEB-INF / classes в вашем файле war, экспортируйте файл war в удобное место (щелкните правой кнопкой мыши проект - > Экспорт - > файл войны) и проверьте содержимое. Обратите внимание, что файл log4j.properties теперь отображается в WEB-INF/classes.

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

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

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

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

${TOMCAT_HOME} / lib