Nano Hash - криптовалюты, майнинг, программирование

Возьмите logback.xml за пределы банки

Я использую logback с slf4j в моем проекте Maven Java. В настоящее время файл конфигурации журнала (logback.xml) находится в папке src -> main -> resources. И это работает нормально.
Моя проблема в том, что мне нужно дать моему клиенту возможность настроить ведение журнала по своему усмотрению. Для этого logback.xml должен быть вне банки, когда я его создаю. Но поскольку xml находится внутри папки src, он находится внутри банки, и никто не может изменить его после сборки.
Как этого добиться?

20.06.2018

Ответы:


1

Указание расположения файла конфигурации по умолчанию в качестве системного свойства Вы можете указать расположение файла конфигурации по умолчанию с помощью системного свойства с именем «logback.configurationFile». Значением этого свойства может быть URL-адрес, ресурс в пути к классу или путь к файлу, внешнему по отношению к приложению.

java -Dlogback.configurationFile=/path/to/config.xml -jar myapp.jar

Из официальных документов

20.06.2018
  • если вы хотите сделать это с помощью кода stackoverflow.com/q/21885787/40570 14.01.2021

  • 2

    Файл logback.xml должен находиться в пути к классам, но не обязательно внутри какой-либо конкретной банки. Детали того, как вы хотите это сделать, зависят от конкретного используемого механизма развертывания: как то, что запускает это приложение, устанавливает путь к классам? Каким бы ни был этот механизм, вы должны иметь возможность настроить его так, чтобы он включался везде, где вы размещаете файл logback.xml, а затем просто не включали его в src/main/resources для встраивания в файл jar.

    В зависимости от сложности того, что вы собираетесь делать, вы можете найти maven-assembly -plugin полезен для создания дистрибутива зависимостей.

    21.06.2018

    3

    Расположение файла конфигурации логбэка можно указать в application.properties или application.yml.

    application.yml

    logging:
      config: logback-spring.xml
    

    Это позволяет разместить jar и log-back.xml в одной папке.

    Обратите внимание, что файл logback-spring.xml в папке вашего проекта не должен быть включен в вашу банку. Этого можно добиться, настроив build.gradle или pom.xml.

    build.gradle

    bootJar {
      archiveName 'your-project.jar'
      exclude("*.xml")
    }
    
    20.11.2018

    4

    Использование Scala SBT (1.2.1) в Windows:

    Пакетный файл:

     @cd %~dp0
    
     @set JAVA_OPTS=-Dlogback.configurationFile=logback.xml
    
     @sbt clean run
    

    у меня работало (странно...)

    31.01.2019
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..