我想了解 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)之类的外部文件?