< prev index next >

jdk/src/java.logging/share/classes/java/util/logging/LogManager.java

Print this page

        

*** 437,447 **** readPrimordialConfiguration = true; try { readConfiguration(); // Platform loggers begin to delegate to java.util.logging.Logger ! sun.util.logging.PlatformLogger.redirectPlatformLoggers(); } catch (Exception ex) { assert false : "Exception raised while reading logging configuration: " + ex; } } } --- 437,448 ---- readPrimordialConfiguration = true; try { readConfiguration(); // Platform loggers begin to delegate to java.util.logging.Logger ! sun.util.logger.BootstrapLogger.redirectTemporaryLoggers(); ! } catch (Exception ex) { assert false : "Exception raised while reading logging configuration: " + ex; } } }
*** 1665,1675 **** } finally { configurationLock.unlock(); } } ! static final Permission controlPermission = new LoggingPermission("control", null); void checkPermission() { SecurityManager sm = System.getSecurityManager(); if (sm != null) sm.checkPermission(controlPermission); --- 1666,1679 ---- } finally { configurationLock.unlock(); } } ! static final Permission controlPermission = ! new LoggingPermission("control", null); ! static final Permission demandLoggerPermission = ! new LoggingPermission("demandLogger", null); void checkPermission() { SecurityManager sm = System.getSecurityManager(); if (sm != null) sm.checkPermission(controlPermission);
*** 1909,1914 **** --- 1913,1946 ---- // after all listeners have been invoked. if (t instanceof Error) throw (Error)t; if (t instanceof RuntimeException) throw (RuntimeException)t; } + /** + * Demands a logger suitable for given caller. + * <p> + * If a named logger suitable for the given caller is found + * returns it. + * Otherwise, creates a new logger suitable for the given caller. + * + * @param name The logger name. + * @param caller The caller on which behalf the logger is created/retrieved. + * @return A logger for the given caller. + * + * @throws SecurityException if the calling code doesn't have the + * {@link LoggingPermission LoggingPermission("demandLogger", null)}. + * @since 9 + */ + public static Logger demandLoggerFor(String name, /* Module */ Class<?> caller) { + SecurityManager sm = System.getSecurityManager(); + if (sm != null) { + sm.checkPermission(demandLoggerPermission); + } + if (caller.getClassLoader() == null) { + return LogManager.getLogManager().demandSystemLogger(name, + Logger.SYSTEM_LOGGER_RB_NAME, caller); + } else { + return LogManager.getLogManager().demandLogger(name, null, caller); + } + } + }
< prev index next >