2727public class Logger {
2828 public static final String GLOBAL_LOGGER_NAME = "global" ;
2929
30- private static final String LOG_LEVEL = System . getProperty ( "jre.logging.logLevel" ) ;
31- private static final boolean LOGGING_INFO = LOG_LEVEL . equals ( "INFO" ) ;
32- private static final boolean LOGGING_WARNING = LOG_LEVEL . equals ( "WARNING" ) ;
33- private static final boolean LOGGING_SEVERE = LOG_LEVEL . equals ( "SEVERE" ) ;
34- private static final boolean LOGGING_OFF = LOG_LEVEL . equals ( "OFF" ) ;
30+ private static final boolean LOGGING_OFF ;
31+ private static final boolean ALL_ENABLED ;
32+ private static final boolean INFO_ENABLED ;
33+ private static final boolean WARNING_ENABLED ;
34+ private static final boolean SEVERE_ENABLED ;
3535
3636 static {
37- assertLoggingValues ();
37+ // '==' instead of equals makes it compile out faster.
38+
39+ String level = System .getProperty ("jre.logging.logLevel" );
40+ if (level != "ALL"
41+ && level != "INFO"
42+ && level != "WARNING"
43+ && level != "SEVERE"
44+ && level != "OFF" ) {
45+ throw new AssertionError ("Undefined value for jre.logging.logLevel: '" + level + "'" );
46+ }
47+
48+ LOGGING_OFF = level == "OFF" ;
49+ ALL_ENABLED = level == "ALL" ;
50+ INFO_ENABLED = level == "ALL" || level == "INFO" ;
51+ WARNING_ENABLED = level == "ALL" || level == "INFO" || level == "WARNING" ;
52+ SEVERE_ENABLED = level == "ALL" || level == "INFO" || level == "WARNING" || level == "SEVERE" ;
3853 }
3954
4055 public static Logger getGlobal () {
@@ -44,28 +59,13 @@ public static Logger getGlobal() {
4459 public static Logger getLogger (String name ) {
4560 // Use shortcut if logging is disabled to avoid parent logger creations in LogManager
4661 if (LOGGING_OFF ) {
47- return new Logger (name , null );
62+ return new Logger (null , null );
4863 }
4964 return LogManager .getLogManager ().ensureLogger (name );
5065 }
5166
52- static void assertLoggingValues () {
53- if (LOG_LEVEL .equals ("ALL" )
54- || LOG_LEVEL .equals ("INFO" )
55- || LOG_LEVEL .equals ("WARNING" )
56- || LOG_LEVEL .equals ("SEVERE" )
57- || LOG_LEVEL .equals ("OFF" )) {
58- return ;
59- }
60-
61- throw new AssertionError (
62- "Undefined value for jre.logging.logLevel: '"
63- + LOG_LEVEL
64- + "'. Allowed values are ALL, INFO, WARNING, SEVERE, OFF" );
65- }
66-
6767 private List <Handler > handlers ;
68- private Level level = null ;
68+ private Level level ;
6969 private String name ;
7070 private Logger parent ; // Should never be null except in the RootLogger
7171 private boolean useParentHandlers ;
@@ -88,98 +88,98 @@ public void addHandler(Handler handler) {
8888 }
8989
9090 public void config (String msg ) {
91- if (LOGGING_OFF || LOGGING_SEVERE || LOGGING_WARNING || LOGGING_INFO ) {
91+ if (! ALL_ENABLED ) {
9292 return ;
9393 }
9494 log (Level .CONFIG , msg );
9595 }
9696
9797 public void config (Supplier <String > msgSupplier ) {
98- if (LOGGING_OFF || LOGGING_SEVERE || LOGGING_WARNING || LOGGING_INFO ) {
98+ if (! ALL_ENABLED ) {
9999 return ;
100100 }
101101 log (Level .CONFIG , msgSupplier );
102102 }
103103
104104 public void fine (String msg ) {
105- if (LOGGING_OFF || LOGGING_SEVERE || LOGGING_WARNING || LOGGING_INFO ) {
105+ if (! ALL_ENABLED ) {
106106 return ;
107107 }
108108 log (Level .FINE , msg );
109109 }
110110
111111 public void fine (Supplier <String > msgSupplier ) {
112- if (LOGGING_OFF || LOGGING_SEVERE || LOGGING_WARNING || LOGGING_INFO ) {
112+ if (! ALL_ENABLED ) {
113113 return ;
114114 }
115115 log (Level .FINE , msgSupplier );
116116 }
117117
118118 public void finer (String msg ) {
119- if (LOGGING_OFF || LOGGING_SEVERE || LOGGING_WARNING || LOGGING_INFO ) {
119+ if (! ALL_ENABLED ) {
120120 return ;
121121 }
122122 log (Level .FINER , msg );
123123 }
124124
125125 public void finer (Supplier <String > msgSupplier ) {
126- if (LOGGING_OFF || LOGGING_SEVERE || LOGGING_WARNING || LOGGING_INFO ) {
126+ if (! ALL_ENABLED ) {
127127 return ;
128128 }
129129 log (Level .FINER , msgSupplier );
130130 }
131131
132132 public void finest (String msg ) {
133- if (LOGGING_OFF || LOGGING_SEVERE || LOGGING_WARNING || LOGGING_INFO ) {
133+ if (! ALL_ENABLED ) {
134134 return ;
135135 }
136136 log (Level .FINEST , msg );
137137 }
138138
139139 public void finest (Supplier <String > msgSupplier ) {
140- if (LOGGING_OFF || LOGGING_SEVERE || LOGGING_WARNING || LOGGING_INFO ) {
140+ if (! ALL_ENABLED ) {
141141 return ;
142142 }
143143 log (Level .FINEST , msgSupplier );
144144 }
145145
146146 public void info (String msg ) {
147- if (LOGGING_OFF || LOGGING_SEVERE || LOGGING_WARNING ) {
147+ if (! INFO_ENABLED ) {
148148 return ;
149149 }
150150 log (Level .INFO , msg );
151151 }
152152
153153 public void info (Supplier <String > msgSupplier ) {
154- if (LOGGING_OFF || LOGGING_SEVERE || LOGGING_WARNING ) {
154+ if (! INFO_ENABLED ) {
155155 return ;
156156 }
157157 log (Level .INFO , msgSupplier );
158158 }
159159
160160 public void warning (String msg ) {
161- if (LOGGING_OFF || LOGGING_SEVERE ) {
161+ if (! WARNING_ENABLED ) {
162162 return ;
163163 }
164164 log (Level .WARNING , msg );
165165 }
166166
167167 public void warning (Supplier <String > msgSupplier ) {
168- if (LOGGING_OFF || LOGGING_SEVERE ) {
168+ if (! WARNING_ENABLED ) {
169169 return ;
170170 }
171171 log (Level .WARNING , msgSupplier );
172172 }
173173
174174 public void severe (String msg ) {
175- if (LOGGING_OFF ) {
175+ if (! SEVERE_ENABLED ) {
176176 return ;
177177 }
178178 log (Level .SEVERE , msg );
179179 }
180180
181181 public void severe (Supplier <String > msgSupplier ) {
182- if (LOGGING_OFF ) {
182+ if (! SEVERE_ENABLED ) {
183183 return ;
184184 }
185185 log (Level .SEVERE , msgSupplier );
@@ -210,16 +210,16 @@ public boolean getUseParentHandlers() {
210210 }
211211
212212 public boolean isLoggable (Level messageLevel ) {
213- if (LOGGING_OFF ) {
214- return false ;
215- } else if (LOGGING_SEVERE ) {
216- return messageLevel .intValue () >= Level .SEVERE .intValue ();
217- } else if (LOGGING_WARNING ) {
218- return messageLevel .intValue () >= Level .WARNING .intValue ();
219- } else if (LOGGING_INFO ) {
213+ if (ALL_ENABLED ) {
214+ return messageLevel .intValue () >= getEffectiveLevel ().intValue ();
215+ } else if (INFO_ENABLED ) {
220216 return messageLevel .intValue () >= Level .INFO .intValue ();
217+ } else if (WARNING_ENABLED ) {
218+ return messageLevel .intValue () >= Level .WARNING .intValue ();
219+ } else if (SEVERE_ENABLED ) {
220+ return messageLevel .intValue () >= Level .SEVERE .intValue ();
221221 } else {
222- return messageLevel . intValue () >= getEffectiveLevel (). intValue () ;
222+ return false ;
223223 }
224224 }
225225
@@ -339,4 +339,4 @@ private void actuallyLog(LogRecord record) {
339339 // public void logrb(Level level, String sourceClass, String sourceMethod, String bundleName, String msg, Object[] params) {}
340340 // public void logrb(Level level, String sourceClass, String sourceMethod, String bundleName, String msg, Throwable thrown) {}
341341 // public void throwing(String sourceClass, String sourceMethod, Throwable thrown) {}
342- }
342+ }
0 commit comments