I JavaDoc per lojava.util.logging.Level stato:
I livelli in ordine decrescente sono:
SEVERE(valore più alto)WARNINGINFOCONFIGFINEFINERFINEST(valore più basso)
fonte
import java.util.logging.*;
class LoggingLevelsBlunder {
public static void main(String[] args) {
Logger logger = Logger.getAnonymousLogger();
logger.setLevel(Level.FINER);
System.out.println("Logging level is: " + logger.getLevel());
for (int ii=0; ii<3; ii++) {
logger.log(Level.FINE, ii + " " + (ii*ii));
logger.log(Level.INFO, ii + " " + (ii*ii));
}
}
}
Produzione
Logging level is: FINER
Jun 11, 2011 9:39:23 PM LoggingLevelsBlunder main
INFO: 0 0
Jun 11, 2011 9:39:24 PM LoggingLevelsBlunder main
INFO: 1 1
Jun 11, 2011 9:39:24 PM LoggingLevelsBlunder main
INFO: 2 4
Press any key to continue . . .
Dichiarazione problema
Il mio esempio imposta il Levela FINER, quindi mi aspettavo di vedere 2 messaggi per ogni ciclo. Invece vedo un singolo messaggio per ogni ciclo (i Level.FINEmessaggi mancano).
Domanda
Cosa deve cambiare per vedere l' output FINE(, FINERo FINEST)?
Aggiorna (soluzione)
Grazie alla risposta di Vineet Reynolds , questa versione funziona secondo le mie aspettative. Visualizza 3 INFOmessaggi x e 3 FINEmessaggi x .
import java.util.logging.*;
class LoggingLevelsBlunder {
public static void main(String[] args) {
Logger logger = Logger.getAnonymousLogger();
// LOG this level to the log
logger.setLevel(Level.FINER);
ConsoleHandler handler = new ConsoleHandler();
// PUBLISH this level
handler.setLevel(Level.FINER);
logger.addHandler(handler);
System.out.println("Logging level is: " + logger.getLevel());
for (int ii=0; ii<3; ii++) {
logger.log(Level.FINE, ii + " " + (ii*ii));
logger.log(Level.INFO, ii + " " + (ii*ii));
}
}
}
