私はJavaでログを記録する目的でlog4jを使用しています。 log.info(何らかのメッセージ)を使用すると、その関数が呼び出されているAPIと、そのメッセージと一緒にログに記録されます。 ここで私のケースのシナリオは、コードスニペットで説明しているものとは異なります。Javaのログインのためにメソッドが呼び出されているクラスの名前を取得する
ClassA{
void log(String message){
log.info(message);
}
}
ClassB{
classA obj = new classA();
obj.log("hello");
}
この場合、ロギング中にlog4jはログファイルにclassAを記録します。しかし、私はAの代わりにclassBを表示したい。
を解決しましたか? LoggerFactory.getLogger(clazz).info(message)を使うことができるように、その行をlogメソッドに移動し、 'Class clazz'引数(=>' void log(String message、Class clazz) '。 – Fildor
あなたはこれがどのように機能しているかを詳しく説明できますか? –
私はlog4jからlog.info()を使用してログに記録したいが、前のクラスのクラス名を取得する理由を変更しないという制限がある –