log4j の仕組みを理解したい。このサイトから多くのチュートリアルとすべての回答を読みましたが、まだ機能する具体的な例は得られませんでした。
私はこれを試しました:
import org.apache.log4j.*;
public class Exercise {
private static Logger logger = Logger.getLogger(SimpleLogger.class);
public static void main(String args[]) {
BasicConfigurator.configure();
// ConsoleAppender myAppender = new ConsoleAppender(null, "System.out");
// myAppender.setLayout(new SimpleLayout());
// logger.addAppender(myAppender);
for (int i = 0; i < 5; i++) {
logger.info("You are here!");
}
logger.info("End of program");
}
}
このクラスでは:
import org.apache.log4j.spi.LoggingEvent;
public class SimpleLogger extends org.apache.log4j.Layout {
@Override
public void activateOptions() {
}
@Override
public String format(LoggingEvent event) {
return "log message = " + event.getMessage().toString() + "/n";
}
@Override
public boolean ignoresThrowable() {
return true;
}
}
しかし、私の出力は次のとおりです。
0 [main] INFO SimpleLogger - You are here!
1 [main] INFO SimpleLogger - You are here!
1 [main] INFO SimpleLogger - You are here!
1 [main] INFO SimpleLogger - You are here!
1 [main] INFO SimpleLogger - You are here!
1 [main] INFO SimpleLogger - End of program
私も試してみましたが、コードはコメントされていませんが、二重形式の出力しか得られませんでした。
質問: 出力 (コンソールまたはファイル) を希望の形式にするにはどうすればよいですか? (log4j.properties) のような外部ファイルを変更する必要がありますか?