< prev index next >

src/java.base/share/classes/jdk/internal/logger/SimpleConsoleLogger.java

Print this page
rev 14279 : [mq]: 8140281-deprecation-optional.get


 175     }
 176 
 177     @Override
 178     public final LoggerConfiguration getLoggerConfiguration() {
 179         return this;
 180     }
 181 
 182     /**
 183      * Default platform logging support - output messages to System.err -
 184      * equivalent to ConsoleHandler with SimpleFormatter.
 185      */
 186     static PrintStream outputStream() {
 187         return System.err;
 188     }
 189 
 190     // Returns the caller's class and method's name; best effort
 191     // if cannot infer, return the logger's name.
 192     private String getCallerInfo() {
 193         Optional<StackWalker.StackFrame> frame = new CallerFinder().get();
 194         if (frame.isPresent()) {
 195             return frame.get().getClassName() + " " + frame.get().getMethodName();
 196         } else {
 197             return name;
 198         }
 199     }
 200 
 201     /*
 202      * CallerFinder is a stateful predicate.
 203      */
 204     static final class CallerFinder implements Predicate<StackWalker.StackFrame> {
 205         private static final StackWalker WALKER;
 206         static {
 207             final PrivilegedAction<StackWalker> action = new PrivilegedAction<>() {
 208                 @Override
 209                 public StackWalker run() {
 210                     return StackWalker.getInstance(StackWalker.Option.RETAIN_CLASS_REFERENCE);
 211                 }
 212             };
 213             WALKER = AccessController.doPrivileged(action);
 214         }
 215 




 175     }
 176 
 177     @Override
 178     public final LoggerConfiguration getLoggerConfiguration() {
 179         return this;
 180     }
 181 
 182     /**
 183      * Default platform logging support - output messages to System.err -
 184      * equivalent to ConsoleHandler with SimpleFormatter.
 185      */
 186     static PrintStream outputStream() {
 187         return System.err;
 188     }
 189 
 190     // Returns the caller's class and method's name; best effort
 191     // if cannot infer, return the logger's name.
 192     private String getCallerInfo() {
 193         Optional<StackWalker.StackFrame> frame = new CallerFinder().get();
 194         if (frame.isPresent()) {
 195             return frame.getWhenPresent().getClassName() + " " + frame.getWhenPresent().getMethodName();
 196         } else {
 197             return name;
 198         }
 199     }
 200 
 201     /*
 202      * CallerFinder is a stateful predicate.
 203      */
 204     static final class CallerFinder implements Predicate<StackWalker.StackFrame> {
 205         private static final StackWalker WALKER;
 206         static {
 207             final PrivilegedAction<StackWalker> action = new PrivilegedAction<>() {
 208                 @Override
 209                 public StackWalker run() {
 210                     return StackWalker.getInstance(StackWalker.Option.RETAIN_CLASS_REFERENCE);
 211                 }
 212             };
 213             WALKER = AccessController.doPrivileged(action);
 214         }
 215 


< prev index next >