初めて技術的な話題に触れるとします。
Log4jの設定ファイルでは、
${キー名}みたいな書式で環境変数を参照できます。
ただ環境変数以外のキーを用意したい場合は、
ちょっと困ってしまいました…(遠い目)
というわけでハッキングです。
DOMConfiguratorを少々(?)いじることにします。
まずはDOMConfiguratorのソースを、
まるごと別のクラスへ移植します。
DOMConfiguratorCustomとかが良い感じでしょうかね?
その中にProperties propsというメンバ変数があるので、
とりあえずSetterメソッドを用意してやります。
setPropsとか、setPropertiesあたりが手頃でしょうか。
後はこんな感じで使います。
DOMConfiguratorCustom config = new DOMConfiguratorCustom();
config.setProps(追加するプロパティ);
config.doConfigure(設定ファイルのパス, LogManager.getLoggerRepository());
コンストラクタにしたり、
staticメソッドにするのはお好みでどうぞ~
ちなみにソースを全コピーしたのは、
クラスを継承してpropsに問い合わせたらIllegalAccessErrorが起こったからです。
多分
もっと簡単な抜け道があったら、
教えて!エライ人!
追記:どうにかしたのはこちら
0 件のコメント:
コメントを投稿