Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>Actually, I'm not sure why your having the problems you've described. I've created a simple JUnit test (below) and setting the log levels works exactly as I expect (which also seems inline with the way you expected them to work).</p> <p>Are you trying to log messages with levels set below INFO in your custom logger? As you can see from the tests I've included, the default logging handler is set to INFO by default. You need to change <em>that Handler's</em> level to see FINE messages (also shown).</p> <pre><code>import java.util.logging.Handler; import java.util.logging.Level; import java.util.logging.Logger; import org.junit.Test; public class SimpleLoggerTest { private void logMessages(Logger logger) { logger.warning(getLoggerName(logger) + ": warning message"); logger.info(getLoggerName(logger) + ": info message"); logger.fine(getLoggerName(logger) + ": fine message"); } private String getLoggerName(Logger logger) { String loggerName = logger.getName(); if (loggerName.isEmpty()) { return "[root logger]"; } return loggerName; } private void listHandlerLevels(Logger logger) { for (Handler handler : logger.getHandlers()) { logger.info(getLoggerName(logger) + ": handler level = " + handler.getLevel()); } Logger parentLogger = logger.getParent(); if (null != parentLogger) { for (Handler handler : parentLogger.getHandlers()) { logger.info("parent logger handler (" + getLoggerName(parentLogger) + "): handler level = " + handler.getLevel()); } } } private void setHandlerLevels(Logger logger, Level level) { for (Handler handler : logger.getHandlers()) { handler.setLevel(level); } Logger parentLogger = logger.getParent(); if (null != parentLogger) { for (Handler handler : parentLogger.getHandlers()) { handler.setLevel(level); } } } @Test public void testLoggingLevel() { Logger myLogger = Logger.getLogger(SimpleLoggerTest.class.getName()); Logger rootLogger = myLogger.getParent(); // list the default handler levels listHandlerLevels(myLogger); listHandlerLevels(rootLogger); // log some messages logMessages(myLogger); logMessages(rootLogger); // change the logger levels myLogger.setLevel(Level.ALL); rootLogger.setLevel(Level.WARNING); // list the handler levels again listHandlerLevels(myLogger); listHandlerLevels(rootLogger); // log some messages (again) logMessages(myLogger); logMessages(rootLogger); // change Handler levels to FINE setHandlerLevels(myLogger, Level.FINE); // list the handler levels (last time) listHandlerLevels(myLogger); listHandlerLevels(rootLogger); // log some messages (last time) logMessages(myLogger); logMessages(rootLogger); } } </code></pre> <p>Produces this output...</p> <pre><code>May 13, 2009 10:46:53 AM SimpleLoggerTest listHandlerLevels INFO: parent logger handler ([root logger]): handler level = INFO May 13, 2009 10:46:53 AM java.util.logging.LogManager$RootLogger log INFO: [root logger]: handler level = INFO May 13, 2009 10:46:53 AM SimpleLoggerTest logMessages WARNING: SimpleLoggerTest: warning message May 13, 2009 10:46:53 AM SimpleLoggerTest logMessages INFO: SimpleLoggerTest: info message May 13, 2009 10:46:53 AM java.util.logging.LogManager$RootLogger log WARNING: [root logger]: warning message May 13, 2009 10:46:53 AM java.util.logging.LogManager$RootLogger log INFO: [root logger]: info message May 13, 2009 10:46:53 AM SimpleLoggerTest listHandlerLevels INFO: parent logger handler ([root logger]): handler level = INFO May 13, 2009 10:46:53 AM SimpleLoggerTest logMessages WARNING: SimpleLoggerTest: warning message May 13, 2009 10:46:53 AM SimpleLoggerTest logMessages INFO: SimpleLoggerTest: info message May 13, 2009 10:46:53 AM java.util.logging.LogManager$RootLogger log WARNING: [root logger]: warning message May 13, 2009 10:46:53 AM SimpleLoggerTest listHandlerLevels INFO: parent logger handler ([root logger]): handler level = FINE May 13, 2009 10:46:53 AM SimpleLoggerTest logMessages WARNING: SimpleLoggerTest: warning message May 13, 2009 10:46:53 AM SimpleLoggerTest logMessages INFO: SimpleLoggerTest: info message May 13, 2009 10:46:53 AM SimpleLoggerTest logMessages FINE: SimpleLoggerTest: fine message May 13, 2009 10:46:53 AM java.util.logging.LogManager$RootLogger log WARNING: [root logger]: warning message </code></pre> <p>This is what I was trying to convey in <a href="https://stackoverflow.com/questions/857634/set-loglevel-for-some-loggers-but-not-others/857746#857746">my other response</a>.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload