2017-02-12 9 views
0

私はMule Loggingのマニュアルを見てきましたが、各環境ごとに異なるロギング設定ファイルを動的にロードする方法については明確ではありません。基本的には、環境間でログの冗長性と同期/非同期機能を制御したいので、サーバー環境変数に基づいてプロパティファイルを動的に選択する同様の機能を探しています。Muleのlog4j2設定を動的に選択しています

答えて

0

2つの方法: - でlog4j2ファイルのパスを設定

  1. アプリケーションのmule-deploy.propertiesのように: -

    log.configFile = E:¥common-log4j2.xml

  2. ログのロードを経由してログマネージャを再構成して、定義されたパスから私たち自身のlog4j2.xmlファイルをロードして、アプリケーションプログラムでで4j2.xml: - REF: - 私はあったhttps://dzone.com/articles/getting-own-log4j2-file-for-mule-via-spring

+0

log.configFileは、カスタムログ設定を指定することですが、envプロパティーを別のプロパティーファイル(mule-deploy.properties)内で設定できないため、環境に基づいて動的にロードすることはできません。唯一の方法は、envプロパティが環境固有のlog4j構成をロードするためにスプリング構成内で使用できる#2オプションです。 log4j2- {env} .xml。これを正解とします。 –

0

私はそれを試したことはありませんが、システムプロパティlog4j.configurationを使用して、Muleを起動するときにlog4j設定ファイルをコマンドラインで設定できるはずです。

たとえば、env変数がMULE-ENVの場合は、-Dlog4j.configuration=c:\some-path\log4j-%MULE-ENV%.xmlを追加します(Windowsの場合)。

これは、Muleスタンドアロン(この場合は-M-Dlog4j.configuration=...が必要と思われる)を使用している場合はコマンドラインで、スタンドアロンを使用する場合はwrapper.confファイルに、またはVM paramsセクションでは直接設定できます。スタジオで実行しているときに実行コンフィギュレーションの[引数]タブ。

+0

これは、サーバーレベルになりますアプリケーションレベルで制御しようとしています。 –

0

アプリケーションに、設定を行うメソッドを呼び出すことができるBeanを持つことができます。このBeanへの引数として環境名を渡すことができます。この環境変数は、その環境に関連する構成ファイルを選択します。 invokeコンポーネントを使用してメソッドを呼び出し、起動時にこのフローを実行できます。 フローが実行されるまで、デフォルトのログ設定を使用できます。あなたはどちらかexternal pathからか、あなたのapplication classpathからアプリケーションに動的にlog4j2ファイルを読み込むことができ

+0

Muleには「起動時にこのフローを実行させる」ことがありますか? –

関連する問題