के लिए Javadocsjava.util.logging.Level राज्य:
अवरोही क्रम में स्तर हैं:
SEVERE(उच्चतम मूल्य)WARNINGINFOCONFIGFINEFINERFINEST(न्यूनतम मूल्य)
स्रोत
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));
}
}
}
उत्पादन
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 . . .
समस्या का विवरण
मेरा उदाहरण इसके लिए सेट Levelहै FINER, इसलिए मैं प्रत्येक लूप के लिए 2 संदेश देखने की उम्मीद कर रहा था। इसके बजाय मुझे प्रत्येक लूप के लिए एक संदेश दिखाई देता है (संदेश Level.FINEगायब हैं)।
सवाल
FINE(, FINERया FINEST) आउटपुट को देखने के लिए क्या बदलने की आवश्यकता है ?
अद्यतन (समाधान)
विनीत रेनॉल्ड्स के जवाब के लिए धन्यवाद , यह संस्करण मेरी उम्मीद के अनुसार काम करता है। यह 3 x INFOसंदेश, और 3 x FINEसंदेश प्रदर्शित करता है ।
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));
}
}
}
