2017-01-24 8 views
0

我々持ってcim_ms1、cim_ms2、... cim_ms6.Inとして名前6つのインスタンスがJBossサーバ我々はLog4g.propertiesを持っているし、ファイルパスをログJavaコードは/ home/CRM /ログ/シム。今のところ、すべての6つのインスタンスのログファイルは、家庭/ CRMで作成されている/ logs.Butすべての6つのインスタンスのために、ログファイルはホーム/ CRM /ログ/ cim_ms1ためcim_ms1、ホーム/ CRM /ログを作成する必要がありますcim_ms2の場合は/ cim_ms2、ログもそれぞれのログファイルパスに正しく入ります。 cim_ms1、cim_ms2などはサーバー名です。これらのパスをlog4gプロパティで動的に取得する必要がありますか?Log4jのプロパティファイルを動的パス設定

答えて

1

私はあなたがすべてのインスタンスで同じlog4j2.xml設定ファイルを使用するとします。プロパティ置換を使用して、別々のログファイルをターゲットにすることができます。ここでは例の構成は次のとおりです。今

<?xml version="1.0" encoding="UTF-8"?> 
<Configuration status="warn"> 
    <Properties> 
    <!-- default to use if system property is not specified --> 
    <Property name="instance">default_instance</Property> 
    </Properties> 
    <Appenders> 
    <File name="MyFile" fileName="home/crm/logs/${sys:instance}/myapp.log"> 
     <PatternLayout> 
     <Pattern>%d %p %c{1.} [%t] %m%n</Pattern> 
     </PatternLayout> 
    </File> 
    </Appenders> 
    <Loggers> 
    <Root level="trace"> 
     <AppenderRef ref="MyFile"/> 
    </Root> 
    </Loggers> 
</Configuration> 

、あなたが第一インスタンスのシステムプロパティ-Dinstance=cim_ms1を指定した場合、2番目のインスタンスなどのため-Dinstance=cim_ms2は、各インスタンスは個別のログファイルに記録します。代わりに、システムプロパティの

は、上記のプロパティは、アプリケーションのクラスパスにこのファイルを含めることでlog4j2.component.propertiesという名前のファイルで指定することができます。

+0

私はJBosと十分に慣れていない午前申し訳ありませんが...それは、JBossのマニュアルを参照する必要があります。または、Webアプリケーションのクラスパスにある 'log4j2.component.properties'というファイルに入れます。 answer.Pleaseため –

+0

おかげRemko私に知らせて、まさにこのシステムプロパティがhost.xmlに設定する必要があります私のHost.xmlのタイプがある:? <サーバー名= cim_ms1> サーバーの詳細を <サーバ名= cim_ms2> サーバーの詳細 示唆してください。 – Aditi

関連する問題