使用しているサービスに応じて、別のログ ファイルに記録する必要があります。たとえば、service1 と service2 があり、ログがそれぞれ service1.log と service2.log にあるとします。
問題は、両方のサービスから共通のコードが使用されていることです。共通コードがいずれかのサービスによって呼び出された場合に、その特定のログ ファイルにログインするようにログを作成するにはどうすればよいでしょうか。
私がロガーを作成する方法は
private static final Logger logger = Logger.getLogger(ClassName.class);
これを処理するために私が考えている方法は、文字列 (ロガー名) を共通コードに渡し、クラスではなくメソッド レベルでロガーを作成することです。
例:
someMethodInCommonCode(String loggerName) {
Logger logger = Logger.getLogger(loggerName);
}
log4j がロガーのキャッシュを保持していることを読んだので、メソッドでロガーを作成してもオーバーヘッドにはならないと思います。
はい、ロガー名が渡されるのは好きではありません。上記のシナリオやその他のアイデアを実現する方法や構成はありますか。