2011年1月19日水曜日

Log4jで環境変数以外のキーワードを追加したい場合(修正版)

前回からの続きです

ちゃんと上手いやり方があったじゃないか…
このクラスのconfigureメソッドを使えば、
任意のプロパティをキーとして設定できます。
副作用は…無いといいなぁ…


public class Log4jDomConfigurator extends DOMConfigurator {

    private Properties propertiesField = null;

    public synchronized Properties getProperties() {
        return propertiesField;
    }

    public synchronized void setProperties(final Properties properties) {
        propertiesField = properties;
    }

    @Override
    protected String subst(final String value) {
        return super.subst(value, getProperties());
    }

    public static void configure(final String filename) {
        new Log4jDomConfigurator().doConfigure(
                filename,
                LogManager.getLoggerRepository());
    }

    public static void configure(
            final String filename,
            final Properties properties) {
        Log4jDomConfigurator configurator = new Log4jDomConfigurator();
        configurator.setProperties(properties);
        configurator.doConfigure(
                filename,
                LogManager.getLoggerRepository());
    }
}

0 件のコメント:

コメントを投稿