次のようなログプロトタイプを備えたサードパーティのソフトウェアライブラリを使用しています。
runtime.getInstance().log(int logtype, String moduleName, String logtext);
ライブラリに依存しないユーティリティライブラリがありますが、自分のクラスからソフトウェアパッケージにログを記録できるようにもしたいと考えています。「あなたは悪いデータを渡しました!」のようなテキストメッセージはかなり普遍的であるため、これは問題なく、良いことです。そして「何とか何とか成功した!」さらに、ソフトウェアベンダーのロギング機能をすでにラップしているので、ランダムなAPIに準拠することさえ心配していません。
私が心配しているのは(なぜこの投稿を書いているのか)、システム全体にさまざまな異なるモジュールが存在することです。したがって、問題は次のようになります。
ModuleFoo extends com.thirdpartyvendor.BaseModule
ModuleBar extends com.thirdpartyvendor.BaseModule
ModuleFoo
---のインスタンスが含まれています---> IndependentDataStructure
---ログエントリを自分の--->に書き込もうとしますWrappedLogger
が、データ構造にへの参照がありませんModuleFoo
。
ModuleBar
---のインスタンスが含まれています---> IndependentDataStructure
---ログエントリを自分の--->に書き込もうとしますWrappedLogger
が、データ構造にへの参照がありませんModuleBar
。
現在、私のシステムは、String moduleName
率直に言って私を病気にするフィールドを通過します...しかし、ログエントリに私のモジュールが何であるかを教えてもらいたいです!ロガーは、 (または)への参照を含まずに、IndependentDataStructure
インスタンスが動作してModuleFoo
いるかどうかModuleBar
(または他のモジュール)をどのように知ることができますか?IndependentDataStructure
BaseModule
String moduleName