サブクラスとスーパークラスがあります。スーパークラスには、何かを記録するメソッドがあります。サブクラスのインスタンスを作成すると、ロガーはスーパー クラスのログ メッセージを作成します。なぜこうなった?
コード例:
SuperClass.java
import java.util.logging.Level;
import java.util.logging.Logger;
public abstract class SuperClass {
public void logAndPrintClass(){
String name = this.getClass().getName();
System.out.println(name);
Logger logger = Logger.getLogger(name);
logger.log(Level.INFO, "Logmessage");
}
}
サブクラス.java
public class SubClass extends SuperClass {
}
TestLogBubClass.java
public class TestLogBubClass {
public static void main(String[] args){
SuperClass obj = new SubClass();
obj.logAndPrintClass();
}
}
出力:
SubClass
Mar 15, 2013 6:30:04 PM SuperClass logAndPrintClass
INFO: Logmessage
ご覧のとおり、クラスの名前は正しく出力されていますが、ログ メッセージでは正しく表示されていません。