2017-02-05 6 views
0

解析の目的で、すべてのログエントリにアプリケーションバージョンを記録したい(理想的には、Javaを書く代わりにlogback-spring.xmlファイルを編集するコード)。ログバックの設定 - Springアプリケーションのバージョンを含める方法

私は既にspringアプリケーション名を正常に記録しています。

注記正しいアプリケーションのバージョンを示す起動ログメッセージの例です。

私のグレードごとにビルドされていますが、正しい実装バージョンでマニフェストファイルを更新しています。 Springのビルドのために、私はinfo.build.version = $ {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> 

はPID 14147

でアプリケーションv1.0.0デベロッパー-SNAPSHOTを開始する...などinfo.build.version、application.version、spring.application.version、:私は、以下を含むキーの数を試してみましたよすでにマニフェストファイルに versionを設定するのGradleを指示するために管理している場合
+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

:それを濾過資源と呼ばれ、私はそれがのGradleで全く同じだと思う:Mavenの中ので、Gradleのを知っているが、MavenのMavenプロジェクトはリソースフィルタリングを使用しています。あなたは春・ブート・スターター・親を使用する場合は、その後、@ .. @プレースホルダ

を経由してあなたのMavenの「プロジェクトのプロパティ」を参照することができますあなたは、そのような

としてファイルをごapplication.propertiesでのMavenプロジェクトのプロパティを追加することができます については
[email protected]@ 

のGradleあなたがに必要

processResources { 
    filesMatching('application.properties') { 
     expand(project.properties) 
    }  
} 
JavaプラグインのprocessResourcesを設定することで、Gradleのプロジェクトからプロパティを拡大

プレースホルダを使用してアクセスできます。

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

あなたはこれがあなたを助けますlogback.xmlに

おかげ

+0

処理の.propertiesファイル、xmlを追加しました)問題は、バージョンに加えてSpringアプリケーション名を注入したいということです。ですから、私はをログバックファイルと$ {APP_NAME} $ {version}に持っています。 ..プロセスリソース中、Gradleはすべての$ {}フィールドを置換しようとしますが、APP_NAMEがgradleに存在しないためプロセスが失敗します – vicsz

1

、あなたは私にはない、あなたのlogback.xml

${version}を置き換えるためのGradleを指示しようとすることができあなたは自動的からプロパティを展開することができMavenのためにdocumentation

によるとhttps://dzone.com/articles/resource-filtering-gradle

+0

私はまた、私のアプリケーション名のSpringProperty(jarファイルとは異なる)を挿入しようとしているとは思えません。 $ {APP_NAME} $ {version} < - ログアウトでは、processResources中にAPP_NAMEが存在しないため、エラーが発生します。 – vicsz

+0

これはわかりました...それは臭いです...しかしLogbackでspringPropertyを使用します実際のSpring起動アプリケーション名(ログバックファイルを含むサブjarではない)を挿入し、processResourcesを使用して、$で{$ APP_NAME}をエスケープしてprocessResoruceがそれをポピュレートしようとしないようにします – vicsz

関連する問題