#intellij-idea #logback
#intellij-idea #возврат в систему
Вопрос:
Когда я разрабатываю приложение в IDEA, где я должен разместить logback.xml чтобы это повлияло на приложение?
Кажется, что при запуске / отладке IDEA не создает никаких jar и не вызывает Maven для создания чего-либо. Выполняет ли оно main () непосредственно из скомпилированного файла *.class? Если да, то куда я могу поместить logback.xml чтобы это возымело эффект?
Ответ №1:
logback.xml
должно быть доступно в корневом каталоге вашего CLASSPATH. Когда вы запускаете свое приложение, полный путь к КЛАССУ печатается в самом начале. Когда я вставляю logback.xml
в /src/main/resources
(проект Maven), он работает без каких-либо проблем. Также присутствует его /src/test/resources
с logback-test.xml
именем.
Просто запустите:
getClass().getClassLoader().getResource("/logback.xml");
И посмотрим, возвращает ли оно что-нибудь или null
.
Если вы не работаете с проектом Maven, откройте Project structure (Ctrl Alt Shift S ) и добавьте в раздел «Модули logback.xml
» папку, содержащую и пометьте ее как «Исходные файлы» (синий значок).
Комментарии:
1. Большое спасибо! Есть ли способ создать Maven place logback.xml рядом с jar, а не внутри него?
2. По умолчанию, если вы поместите какой-либо файл в тот же каталог, что и JAR, он не будет добавлен в CLASSPATH, поэтому Logback не увидит
logback.xml
там. Но, конечно, просто не помещайте его в/src/main/resources
(и скопируйте его вручную, куда хотите). Если вы хотите иметьlogback.xml
доступ извне, чтобы иметь возможность быстро изменять конфигурацию, Logback поддерживает чтение свойств среды из коробки среди других возможностей.3. Спасибо за это, это помогло мне войти в Postgres! После того, как я, наконец, разобрался, мой файл был назван backlog.xml и не logback.xml ха-ха!
4. @tomasz: Я хочу загрузить logback.xml из внешней папки. Это logback.xml будет общим для двух разных проектов, работающих на tomcat6 и weblogic10. не могли бы вы, пожалуйста, подсказать, как я могу это сделать. блуждаю по Сети, но не нашел никакого полезного решения: (
5. Хотя этот ответ слишком поздний для Sai, вы можете указать logback.xml путь в качестве параметра командной строки: -Dlogback.configurationFile=/path/to/config.xml
Ответ №2:
Мне нужно было перестроить проект (а не просто повторно запустить или перекомпилировать проект). Изменение srcmainresourceslogback.xml
не повлияло на обратный вход в систему, потому что загрузчик классов собирает logback.xml это находится в target/
папке, а не в /src
папке. Это имеет смысл, поскольку целью является среда запуска. Следовательно, для передачи нового XML-файла в target требуется сборка.