164 logger.log(level, bundle, format, params);
165 }
166
167 }
168
169 public Logger getLogger(String name, Class<?> caller);
170 public Logger getLocalizedLogger(String name, ResourceBundle bundle, Class<?> caller);
171 }
172
173 public static class BaseLoggerFinder extends LoggerFinder implements TestLoggerFinder {
174
175 static final RuntimePermission LOGGERFINDER_PERMISSION =
176 new RuntimePermission("loggerFinder");
177 public BaseLoggerFinder() {
178 if (fails.get()) {
179 throw new RuntimeException("Simulate exception while loading provider");
180 }
181 }
182
183 System.Logger createSimpleLogger(String name) {
184 PrivilegedAction<System.Logger> pa = () -> SimpleConsoleLogger.makeSimpleLogger(name, false);
185 return AccessController.doPrivileged(pa);
186 }
187
188
189 @Override
190 public Logger getLogger(String name, Class<?> caller) {
191 SecurityManager sm = System.getSecurityManager();
192 if (sm != null) {
193 sm.checkPermission(LOGGERFINDER_PERMISSION);
194 }
195 PrivilegedAction<ClassLoader> pa = () -> caller.getClassLoader();
196 ClassLoader callerLoader = AccessController.doPrivileged(pa);
197 if (callerLoader == null) {
198 return system.computeIfAbsent(name, (n) -> new LoggerImpl(n, createSimpleLogger(name)));
199 } else {
200 return user.computeIfAbsent(name, (n) -> new LoggerImpl(n, createSimpleLogger(name)));
201 }
202 }
203 }
204
|
164 logger.log(level, bundle, format, params);
165 }
166
167 }
168
169 public Logger getLogger(String name, Class<?> caller);
170 public Logger getLocalizedLogger(String name, ResourceBundle bundle, Class<?> caller);
171 }
172
173 public static class BaseLoggerFinder extends LoggerFinder implements TestLoggerFinder {
174
175 static final RuntimePermission LOGGERFINDER_PERMISSION =
176 new RuntimePermission("loggerFinder");
177 public BaseLoggerFinder() {
178 if (fails.get()) {
179 throw new RuntimeException("Simulate exception while loading provider");
180 }
181 }
182
183 System.Logger createSimpleLogger(String name) {
184 PrivilegedAction<System.Logger> pa = () -> SimpleConsoleLogger.makeSimpleLogger(name);
185 return AccessController.doPrivileged(pa);
186 }
187
188
189 @Override
190 public Logger getLogger(String name, Class<?> caller) {
191 SecurityManager sm = System.getSecurityManager();
192 if (sm != null) {
193 sm.checkPermission(LOGGERFINDER_PERMISSION);
194 }
195 PrivilegedAction<ClassLoader> pa = () -> caller.getClassLoader();
196 ClassLoader callerLoader = AccessController.doPrivileged(pa);
197 if (callerLoader == null) {
198 return system.computeIfAbsent(name, (n) -> new LoggerImpl(n, createSimpleLogger(name)));
199 } else {
200 return user.computeIfAbsent(name, (n) -> new LoggerImpl(n, createSimpleLogger(name)));
201 }
202 }
203 }
204
|