2017-02-05 5 views
0

Для целей анализа я хочу зарегистрировать версию приложения во всех регистрационных записях (в идеале я хотел бы сделать это, отредактировав файл logback-spring.xml вместо того, чтобы писать любую Java код).Конфигурация журнала - как включить Spring Application Version

Я уже регистрирую имя приложения весной успешно.

Обратите внимание, что при запуске журнала появляется сообщение с правильной версией приложения.

Согласно моей оценке класса - обновляю ли файл манифеста с правильной версией реализации. Для целей создания пружины я также устанавливаю info.build.version = $ {version}.

См. Ниже пример - я не уверен, что положить в ??? правильно зарегистрировать версию приложения. Я пытался несколько клавиш, включая: info.build.version, application.version, spring.application.version и т.д ..

<springProperty name="APP_NAME" source="spring.application.name"/> 

<springProperty name="APP_VERSION" source="???"/> 

<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> 
    <encoder> 
     <pattern> version=${APP_VERISON} site=${APP_NAME} %msg%n </pattern> 
    </encoder> 
</appender> 

Запуск приложения v1.0.0-SNAPSHOT с PID 14147

+0

Это поможет вам: http://stackoverflow.com/questions/3697449/retrieve-version-from- maven-pom-xml-in-code – Barath

+0

Вы пытались использовать '$ {info.build.version}' в шаблоне ведения журнала? –

+0

@PiotrGwiazda - правильно Я пробовал $ {info.build.version} – vicsz

ответ

2

Согласно documentation

Для Maven вы можете автоматически расширять свойства от проект Maven с использованием фильтрация ресурсов. Если вы используете весна-загрузки-стартер-родителя вы можете обратиться к вашему Maven «Свойства проекта» через @ .. @ заполнителей

Вы можете добавить Maven свойства проекта в ваших application.properties файл, такие как

[email protected]@ 

для Gradle вам нужно расширить свойства от проекта Gradle путем настройки processResources плагина Java-

processResources { 
    filesMatching('application.properties') { 
     expand(project.properties) 
    }  
} 

Можно получить доступ через заполнители.

app.name=${name} 
app.description=${description} 
app.version=${version} 

Вы можете использовать эти свойства, чтобы добавить в logback.xml

Благодаря

+0

Пробовал этот подход (уже файлы .properties, добавлены xml). Проблема заключается в том, что я хочу добавить имя весны в дополнение к версии. Поэтому у меня есть in. Файл журнала и $ {APP_NAME} $ {версия}. .. Во время ресурсов процесса Gradle попытается заменить все поля $ {}, однако процесс завершится неудачно из-за того, что APP_NAME не существует для gradle – vicsz

1

Если вы уже успели поручить Gradle установить version в файле манифеста, то вы можете попробовать поручить Gradle заменить ${version} в вашем logback.xml

Я не знаю Gradle, но Maven, так и в Maven: его называют отфильтрованных ресурсов, я думаю, что это совершенно то же самое в Gradle: https://dzone.com/articles/resource-filtering-gradle

+0

Не верьте, что это сработает, когда я также попробую добавить SpringProperty моего имени приложения (оно отличается от файла jar). $ {APP_NAME} $ {version} <- в logback не будет работать, поскольку APP_NAME не существует во время processResources – vicsz

+0

Выяснил это ... это вонючий ... но я использую springProperty в Logback to введите фактическое имя приложения Spring Boot Application (не sub jar, который содержит файл журнала), я использую processResources, и я ухожу из $ {APP_NAME) с/$, так что processResoruce не пытается заполнить его. – vicsz

 Смежные вопросы

  • Нет связанных вопросов^_^