0

これは、いくつかのライブラリ (log4j など) がバンドルとして既に利用可能であることが示唆されたフォローアップです ( OSGi アプリケーションへのサードパーティの依存関係の何らかの形で)。Eclipse Indigo では、インストールの一部として 使用できる log4j バンドルが見つからなかったため、log4jをバンドルする を作成し、この投稿に従って構成をバンドルするも作成しました。
Import PackagePlugin Project from JAR archiveFeature Projectlog4j.xml

正直に言うと、フラグメント プロジェクトが必要な理由はわかりませんが、このプロセスは機能します。
だから私の質問は次
のとおりです:log4j.xml機能jarの一部としてエクスポートで配信されるため、誰かがそれを見つけてデバッグレベルを更新するには「努力」が必要なので、これは本当に正しいプロセスですか?
最終的にエクスポートされた製品は、見つけやすい場所に log4j 構成を提供することを念頭に置いていましたが、今では (ログは機能しますが) 私の行っていることが本当に正しいかどうか心配です。

ここで何か助けはありますか?

4

3 に答える 3

2

本当にファイルを公開する必要がある場合は、ファイルを好きな場所に置き、プログラムが起動時に次のいずれかのメソッドを呼び出すようにします。

  • org.apache.log4j.xml.DOMConfigurator. configure (文字列ファイル名)
  • org.apache.log4j.PropertyConfigurator. configure (文字列 configFilename)

または、アプリケーションを再起動せずに構成を変更したい場合は、"configureAndWatch" バリアントを使用します。

編集:「本当に必要な場合」と書いています。これは、常にオンになっているため、展開後にデバッグログをオンにする必要がないことを経験したためです。これは、応答時間とスループットに関して通常の (しかし極端ではない) 要件があるアプリケーションでは問題ありません。UDP アペンダーへのロギングは高速です (そしてディスクがいっぱいになりません)。または、ローリング ファイル アペンダーを使用することは非常に安全であり、私の使用には十分高速です。デバッグログを常に利用できるようにしておくことは、再現が困難なバグを突き止める際の命の恩人です。

于 2012-10-18T12:19:51.560 に答える
1

Pax-Loggingを見ることをお勧めします。これにより、OSGi 環境で使用するためのあらゆる種類のログ フレームワークが得られます。また、外部構成ファイル (エクステンダーは不要) を使用してログを構成できます。

于 2012-10-01T09:26:14.567 に答える
1

フラグメントは、log4j バンドルのクラスパスを拡張して、必要な構成ファイルを含めるオプションの 1 つです。これはおそらく、アプリケーション全体のプロパティを構成する最も簡単な方法です。

これは、jar ファイル内に埋め込まれるため、デプロイ後に変更することを意図していません。展開後に構成可能にすると予想される場合は、別のアプローチを考え出す必要があります。

注: バンドルとして既に利用可能な jar に関する回答を誤解していると思います。これは、選択した OSGi プラットフォーム (Indigo) の一部であることを意味するのではなく、そのまま OSGi プラットフォームにデプロイする準備ができていることを意味します。プラグイン プロジェクトを作成する必要はありません。jar をターゲット プラットフォームに追加して、不足しているインポートを解決する必要がありました。

于 2012-10-01T17:07:13.240 に答える