私は自分のプロジェクトで OSGi を学習しようとしていますが、Equinox 3.5 で導入されたExtendedLogService
andに出会いました。ExtendedLogReaderService
それがどのように機能するかを理解し、プロジェクトで使用するのに役立つチュートリアルや例はありますか?
ありがとう。
ExtendedLogService はまだ試していません。インターフェイスを見ると、一般的なロギング フレームワークに似ているように見えます。では、確立されたロギング API を使用しないのはなぜでしょうか? OSGi ロギング サービスを使用すると、すべてのコードが OSGi に関連付けられます。確立されたフレームワークは、OSGi の内外で機能します。アプリケーションで slf4j を使用することをお勧めします。これを OSGi で機能させるには、pax ロギング フレームワークが必要です。Pax ロギングは、log4j や java.util.logging などの他の大きなロギング API もサポートしています。サーバー プロジェクトを行っている場合は、pax ロギングやその他の多くのライブラリが既に含まれているApache Karafも参照することをお勧めします。
私はExtendedLogServiceを実装しませんでしたが、org.osgi.service.log.LogReaderService
org.osgi.service.log.LogEntry , org.osgi.service.log.LogListener
役立つと思うものを実装しました。
チュートリアルについて私はこの1つのロガーチュートリアルに従います
OSGiのロギング機能に対する私の見解、
OSGiでのロギングの構造
log4jとslf4jは、S0Aアーキテクチャでは機能しないため、特に避けていました。log4jをOSGiファイド環境で動作させるPaxLoggingが利用可能ですが、log4jプロパティへのバンドルの情報はデザインパターンを損なうと思います。OSGifiedenvのlog4jに疑問を呈した開発者はたくさんいます。
LogListener (LogListnerImpl)
^
|
| Dispatches the LogEvent to LogListner
|
Log Service ---- Send a LogEvent --> LogReaderService (log.jar)
^
|
|
Bundle write a log
================================================== =========================
経験豊富な開発者が私を訂正してくれれば幸いです。