次のようなログプロトタイプを備えたサードパーティのソフトウェアライブラリを使用しています。
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(または他のモジュール)をどのように知ることができますか?IndependentDataStructureBaseModuleString moduleName