Warum werden die Level.FINE-Protokollierungsnachrichten nicht angezeigt?

Den JavaDocs für java.util.die Protokollierung.Level Zustand:


Ebenen in absteigender Reihenfolge sind:

  • SEVERE (höchster Wert)
  • WARNING
  • INFO
  • CONFIG
  • FINE
  • FINER
  • FINEST (niedrigster Wert)

Quelle

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));
        }
    }
}

Ausgabe

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 . . .

Problem statement

Meinem Beispiel wird die Level zu FINERalso ich wurde erwartet, um zu sehen 2 Nachrichten for-each-Schleife. Stattdessen sehe ich eine einzelne Nachricht für jede Schleife (die Level.FINE Nachrichten fehlen).

Frage

Was geändert werden muss, um zu sehen, die FINE (, FINER oder FINEST) Ausgang?

Update (Lösung)

Dank Vineet Reynolds' Antwortdiese version funktioniert nach meiner Erwartung. Es zeigt 3xINFO Nachrichten & 3xFINE Nachrichten.

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));
        }
    }
}

InformationsquelleAutor der Frage Andrew Thompson | 2011-06-11

Schreibe einen Kommentar