I have made a custom formatter for the java.util logger, implemented as below
logger = Logger.getAnonymousLogger();
logger.setUseParentHandlers(false);
sb = new StringBuffer();
try {
Handler handler = new FileHandler("xx.log");
handler.setFormatter(new CustomFormatter());
logger.addHandler(handler);
} catch (IOException e) {
e.printStackTrace();
}
private class CustomFormatter extends Formatter {
@Override
public String format(LogRecord record) {
String msg = record.getMessage();
sb.append(msg);
System.out.print(sb.toString());
return sb.toString();
}
}
Running the following code:
logger.finest(msg);
logger.finer(msg);
logger.fine(msg);
logger.config(msg);
logger.info(msg);
logger.warning(msg);
logger.severe(msg);
logger.log(new LogRecord(Level.FINE, msg));
Only info, warning, and severe work. the other methods run but return nothing to console, and write nothing to the log file. I need to implement at least 4 logging levels, but only the 3 work.
What is happening to log,config,fine,finer, finest? How do I get them to use my formatter? Or how do I pass the level to the formatter?