2

logback.xml 構成ファイルでいくつかのプロパティを定義したいと考えており、PropertyDefinerを実装することは、カスタマイズ可能な方法でプロパティを設定する優れた方法であることがわかりました。

実装を開始した後、タグ内の要素のname属性の値にアクセスする方法を考え始めました。とにかくこれを行うとは思えず、頭を悩ませています。この PropertyDefiner を使用すると、すべてのプロパティに対して新しい実装を作成する必要がありますか? ハードコーディングしないのはなぜですか?これについては、ウェブ上であまり議論されていませんでした。

私はそれを見ていないだけで、stackoverflowの頭脳が私を助けてくれることを願っています. 誰もこれを行う方法を知っていますか? ありがとう!

私はこの議論を見つけました:本質的に同じ質問が尋ねられますが、答えは返されませんでした。

fyi: データベースから取得しているため、プロパティを取得する方法をカスタマイズしたいと考えています。サーバーの起動時にプロパティを取得するヘルパー クラスがあります。これらのプロパティは、環境 (開発、テスト、本番など) によって異なります。

4

1 に答える 1

3

logback バージョン 1.0.6 以降、name属性の値に直接アクセスすることはできません。ただし、選択したプロパティでname属性の値を渡すことを妨げるものは何もありません。例:

<define name="rootLevel" class="Your.PropertyDefiner">
  <myKey>rootLevel</myKey>
</define>

ここでmyKeyは のプロパティですYour.PropertyDefiner。例えば:

class Your.PropertyDefiner implements PropertyDefiner {   
  String myKey; 
  public void setMyKey(String k) {
    this.myKey= k;   
  }
  public String getPropertyValue() {
    return ...   
  }  
}

logback の構成フレームワークである Joran が配線を処理します。Joran はmyKey要素の値を のmyKeyプロパティに挿入しますYour.PropertyDefiner。技術的な詳細に興味がある場合は、暗黙的アクションと実際の暗黙的アクションに関するドキュメントを参照ください

于 2012-07-08T22:09:18.580 に答える