これまで、次のような log4j のメソッドを使用してきました。
void writeMethod(String msg){
StackTraceElement[] st = Thread.currentThread().getStackTrace();
Logger log=Logger.getLogger(st[2]);
log.info(msg);
}
これは、プロパティと共に、書き込みメソッドを呼び出したクラス/メソッドをログ ファイルに表示することを可能にし、アプリケーションの実行ごとに 1 つのログ ファイルのみが必要である限り、正常に機能しました。アプリケーションごとに多くのスレッドがあり、アプリケーションごとに複数のログ ファイルが必要です (数は事実上、無制限にすることができます)。複数のログ ファイルが必要なため、アプリケーションの起動時に log4j.properties ファイルを自動的に作成し、アプリケーションのスレッドごとに特定のアペンダーを使用します。
そのため、アペンダーは同様の名前が付けられl0, l1, l2 ....
、それぞれが異なるログ ファイルに書き込みます。
これは、次のようなものを使用していることを意味します。
void writeMethod(int threadNr ,String msg){
Logger log=Logger.getLogger("l"+threadNr);
log.info(msg);
}
私の質問は: この 2 番目のメソッドを使用できますか? また、ロギング メソッドを呼び出したメソッド/クラスを記述できるという以前の機能も使用できますか?