2016-08-01 4 views
4

私はユーザのホームディレクトリにログファイルを入れたいと思います。Logbackでポータブルな方法でユーザのホームディレクトリにログファイルを置く方法は?

Windows、Linux、Macなどのポータブルな操作方法

+0

'$ {user.home} 'などを使用してください。ドキュメントを参照してください(NB:最初のgoogleの回答:http://mailman.qos.ch/pipermail/logback-user/2013-May/003938.html) –

+0

以下の回答の1つがあなたを助けたと思うなら、upvote/markそれは他の人があなたのために働いていることを知っているように「受け入れられた」ようです:)(そうでなければ、自由にコメントしてください) – xav

答えて

9

Logback documentationによると、あなたはJVMで環境変数存在は直接OSから来ている、${user.home}を使用する必要がありますが(それがポータブルである):

<appender name="FILE" class="ch.qos.logback.core.FileAppender"> 
    <file>${user.home}/logback.log</file> 
    <encoder> 
     <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern> 
    </encoder> 
</appender> 
0

ログのセットアップが実際の構成要素でありますシステム。あなたの最善の策は、各システムの構成を分離(およびロード)することです。これを行うための良い方法の1つは、Apache Commons Configurationのようなものを使用することです。これにより、一回限りのログバック設定を見つける場所を示す一連のプロパティをトラバースすることができます。

ログバック設定ファイル名を識別するために "優先度"のような方式を使用します。

<configuration config-name="master-config"> 
<!-- start here, properties encountered in the first file would be ignored in the last file --> 
<properties fileName="/opt/config/log.properties" optional="true"/> 
<properties fileName="${sys:user.home}/config/product/log.properties" optional="true"/> 
<properties fileName="com/company/product/config/log.properties"/>  
私の地元のWindows開発ボックスで

($ {SYS:のuser.home} /config/product/log.properties)ファイルは

ようになりますのApache Commonsの設定を使用すると、私たちのようなスキームを指定します
logbackConfigLocation=C:/Users/dan/config/product/logback.xml 

各システム/ユーザは、必要に応じてロギングを設定/設定できます。サーブレットコンテキスト内から、ログバックをロードして初期化できます。

関連する問題