Где находится правильное место для размещения Log4j. properties в проекте Eclipse?
где в моем проекте Eclipse я должен добавить log4j.properties
файл, чтобы он работал так, как задумано?
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:
- создайте папку с именем "ресурсы" в вашем проекте.
- создать .файл свойств с именем log4j
- задать свойства в файле log4j. properties
- нажмите правую кнопку в проекте и перейдите в свойства - > путь сборки Java и, наконец, перейдите на вкладку "источник".
- нажмите Добавить папку и найдите папку "ресурсы", созданную на шаге 1.
- готово.
(Я предположил, что у вас есть библиотека 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