23 * questions. |
23 * questions. |
24 */ |
24 */ |
25 |
25 |
26 package com.sun.jmx.remote.util; |
26 package com.sun.jmx.remote.util; |
27 |
27 |
28 import java.util.logging.Logger; |
28 import java.lang.System.Logger; |
29 |
29 import java.lang.System.Logger.Level; |
30 public class ClassLogger { |
30 import java.util.ResourceBundle; |
31 |
31 |
32 private static final boolean ok; |
32 public class ClassLogger implements System.Logger { |
|
33 |
33 private final String className; |
34 private final String className; |
34 private final Logger logger; |
35 private final Logger logger; |
35 |
36 |
36 static { |
|
37 /* We attempt to work even if we are running in J2SE 1.3, where |
|
38 there is no java.util.logging. The technique we use here is |
|
39 not strictly portable, but it does work with Sun's J2SE 1.3 |
|
40 at least. This is just a best effort: the Right Thing is for |
|
41 people to use at least J2SE 1.4. */ |
|
42 boolean loaded = false; |
|
43 try { |
|
44 Class<?> c = java.util.logging.Logger.class; |
|
45 loaded = true; |
|
46 } catch (Error e) { |
|
47 // OK. |
|
48 // java.util.logger package is not available in this jvm. |
|
49 } |
|
50 ok = loaded; |
|
51 } |
|
52 |
|
53 public ClassLogger(String subsystem, String className) { |
37 public ClassLogger(String subsystem, String className) { |
54 if (ok) |
38 logger = System.getLogger(subsystem); |
55 logger = Logger.getLogger(subsystem); |
|
56 else |
|
57 logger = null; |
|
58 this.className = className; |
39 this.className = className; |
59 } |
40 } |
60 |
41 |
61 public final boolean traceOn() { |
42 public final boolean traceOn() { |
62 return finerOn(); |
43 return logger.isLoggable(Level.TRACE); |
63 } |
44 } |
64 |
45 |
65 public final boolean debugOn() { |
46 public final boolean debugOn() { |
66 return finestOn(); |
47 return logger.isLoggable(Level.DEBUG); |
67 } |
48 } |
68 |
49 |
69 public final boolean warningOn() { |
50 public final boolean warningOn() { |
70 return ok && logger.isLoggable(java.util.logging.Level.WARNING); |
51 return logger.isLoggable(Level.WARNING); |
71 } |
52 } |
72 |
53 |
73 public final boolean infoOn() { |
54 public final boolean infoOn() { |
74 return ok && logger.isLoggable(java.util.logging.Level.INFO); |
55 return logger.isLoggable(Level.INFO); |
75 } |
56 } |
76 |
57 |
77 public final boolean configOn() { |
58 public final boolean configOn() { |
78 return ok && logger.isLoggable(java.util.logging.Level.CONFIG); |
59 return logger.isLoggable(Level.DEBUG); |
79 } |
60 } |
80 |
61 |
81 public final boolean fineOn() { |
62 public final boolean fineOn() { |
82 return ok && logger.isLoggable(java.util.logging.Level.FINE); |
63 return logger.isLoggable(Level.DEBUG); |
83 } |
64 } |
84 |
65 |
85 public final boolean finerOn() { |
66 public final boolean finerOn() { |
86 return ok && logger.isLoggable(java.util.logging.Level.FINER); |
67 return logger.isLoggable(Level.TRACE); |
87 } |
68 } |
88 |
69 |
89 public final boolean finestOn() { |
70 public final boolean finestOn() { |
90 return ok && logger.isLoggable(java.util.logging.Level.FINEST); |
71 return logger.isLoggable(Level.TRACE); |
91 } |
72 } |
92 |
73 |
93 public final void debug(String func, String msg) { |
74 public final void debug(String func, String msg) { |
94 finest(func,msg); |
75 logger.log(Level.DEBUG, msg); |
95 } |
76 } |
96 |
77 |
97 public final void debug(String func, Throwable t) { |
78 public final void debug(String func, Throwable t) { |
98 finest(func,t); |
79 logger.log(Level.DEBUG, className + "::" + func, t); |
99 } |
80 } |
100 |
81 |
101 public final void debug(String func, String msg, Throwable t) { |
82 public final void debug(String func, String msg, Throwable t) { |
102 finest(func,msg,t); |
83 logger.log(Level.DEBUG, msg, t); |
103 } |
84 } |
104 |
85 |
105 public final void trace(String func, String msg) { |
86 public final void trace(String func, String msg) { |
106 finer(func,msg); |
87 logger.log(Level.TRACE, msg); |
107 } |
88 } |
108 |
89 |
109 public final void trace(String func, Throwable t) { |
90 public final void trace(String func, Throwable t) { |
110 finer(func,t); |
91 logger.log(Level.TRACE, className + "::" + func, t); |
111 } |
92 } |
112 |
93 |
113 public final void trace(String func, String msg, Throwable t) { |
94 public final void trace(String func, String msg, Throwable t) { |
114 finer(func,msg,t); |
95 logger.log(Level.TRACE, msg, t); |
115 } |
96 } |
116 |
97 |
117 public final void error(String func, String msg) { |
98 public final void error(String func, String msg) { |
118 severe(func,msg); |
99 logger.log(Level.ERROR, msg); |
119 } |
100 } |
120 |
101 |
121 public final void error(String func, Throwable t) { |
102 public final void error(String func, Throwable t) { |
122 severe(func,t); |
103 logger.log(Level.ERROR, className + "::" + func, t); |
123 } |
104 } |
124 |
105 |
125 public final void error(String func, String msg, Throwable t) { |
106 public final void error(String func, String msg, Throwable t) { |
126 severe(func,msg,t); |
107 logger.log(Level.ERROR, msg, t); |
127 } |
108 } |
128 |
109 |
129 public final void finest(String func, String msg) { |
110 public final void finest(String func, String msg) { |
130 if (ok) |
111 logger.log(Level.TRACE, msg); |
131 logger.logp(java.util.logging.Level.FINEST, className, func, msg); |
|
132 } |
112 } |
133 |
113 |
134 public final void finest(String func, Throwable t) { |
114 public final void finest(String func, Throwable t) { |
135 if (ok) |
115 logger.log(Level.TRACE, className + "::" + func, t); |
136 logger.logp(java.util.logging.Level.FINEST, className, func, |
|
137 t.toString(), t); |
|
138 } |
116 } |
139 |
117 |
140 public final void finest(String func, String msg, Throwable t) { |
118 public final void finest(String func, String msg, Throwable t) { |
141 if (ok) |
119 logger.log(Level.TRACE, msg, t); |
142 logger.logp(java.util.logging.Level.FINEST, className, func, msg, |
|
143 t); |
|
144 } |
120 } |
145 |
121 |
146 public final void finer(String func, String msg) { |
122 public final void finer(String func, String msg) { |
147 if (ok) |
123 logger.log(Level.TRACE, msg); |
148 logger.logp(java.util.logging.Level.FINER, className, func, msg); |
|
149 } |
124 } |
150 |
125 |
151 public final void finer(String func, Throwable t) { |
126 public final void finer(String func, Throwable t) { |
152 if (ok) |
127 logger.log(Level.TRACE, className + "::" + func, t); |
153 logger.logp(java.util.logging.Level.FINER, className, func, |
|
154 t.toString(), t); |
|
155 } |
128 } |
156 |
129 |
157 public final void finer(String func, String msg, Throwable t) { |
130 public final void finer(String func, String msg, Throwable t) { |
158 if (ok) |
131 logger.log(Level.DEBUG, msg, t); |
159 logger.logp(java.util.logging.Level.FINER, className, func, msg,t); |
|
160 } |
132 } |
161 |
133 |
162 public final void fine(String func, String msg) { |
134 public final void fine(String func, String msg) { |
163 if (ok) |
135 logger.log(Level.DEBUG, msg); |
164 logger.logp(java.util.logging.Level.FINE, className, func, msg); |
|
165 } |
136 } |
166 |
137 |
167 public final void fine(String func, Throwable t) { |
138 public final void fine(String func, Throwable t) { |
168 if (ok) |
139 logger.log(Level.DEBUG, className + "::" + func, t); |
169 logger.logp(java.util.logging.Level.FINE, className, func, |
|
170 t.toString(), t); |
|
171 } |
140 } |
172 |
141 |
173 public final void fine(String func, String msg, Throwable t) { |
142 public final void fine(String func, String msg, Throwable t) { |
174 if (ok) |
143 logger.log(Level.DEBUG, msg, t); |
175 logger.logp(java.util.logging.Level.FINE, className, func, msg, |
|
176 t); |
|
177 } |
144 } |
178 |
145 |
179 public final void config(String func, String msg) { |
146 public final void config(String func, String msg) { |
180 if (ok) |
147 logger.log(Level.DEBUG, msg); |
181 logger.logp(java.util.logging.Level.CONFIG, className, func, msg); |
|
182 } |
148 } |
183 |
149 |
184 public final void config(String func, Throwable t) { |
150 public final void config(String func, Throwable t) { |
185 if (ok) |
151 logger.log(Level.DEBUG, className + "::" + func, t); |
186 logger.logp(java.util.logging.Level.CONFIG, className, func, |
|
187 t.toString(), t); |
|
188 } |
152 } |
189 |
153 |
190 public final void config(String func, String msg, Throwable t) { |
154 public final void config(String func, String msg, Throwable t) { |
191 if (ok) |
155 logger.log(Level.DEBUG, msg, t); |
192 logger.logp(java.util.logging.Level.CONFIG, className, func, msg, |
|
193 t); |
|
194 } |
156 } |
195 |
157 |
196 public final void info(String func, String msg) { |
158 public final void info(String func, String msg) { |
197 if (ok) |
159 logger.log(Level.INFO, msg); |
198 logger.logp(java.util.logging.Level.INFO, className, func, msg); |
|
199 } |
160 } |
200 |
161 |
201 public final void info(String func, Throwable t) { |
162 public final void info(String func, Throwable t) { |
202 if (ok) |
163 logger.log(Level.INFO, className + "::" + func, t); |
203 logger.logp(java.util.logging.Level.INFO, className, func, |
|
204 t.toString(), t); |
|
205 } |
164 } |
206 |
165 |
207 public final void info(String func, String msg, Throwable t) { |
166 public final void info(String func, String msg, Throwable t) { |
208 if (ok) |
167 logger.log(Level.INFO, msg, t); |
209 logger.logp(java.util.logging.Level.INFO, className, func, msg, |
|
210 t); |
|
211 } |
168 } |
212 |
169 |
213 public final void warning(String func, String msg) { |
170 public final void warning(String func, String msg) { |
214 if (ok) |
171 logger.log(Level.WARNING, msg); |
215 logger.logp(java.util.logging.Level.WARNING, className, func, msg); |
|
216 } |
172 } |
217 |
173 |
218 public final void warning(String func, Throwable t) { |
174 public final void warning(String func, Throwable t) { |
219 if (ok) |
175 logger.log(Level.WARNING, className + "::" + func, t); |
220 logger.logp(java.util.logging.Level.WARNING, className, func, |
|
221 t.toString(), t); |
|
222 } |
176 } |
223 |
177 |
224 public final void warning(String func, String msg, Throwable t) { |
178 public final void warning(String func, String msg, Throwable t) { |
225 if (ok) |
179 logger.log(Level.WARNING, msg, t); |
226 logger.logp(java.util.logging.Level.WARNING, className, func, msg, |
|
227 t); |
|
228 } |
180 } |
229 |
181 |
230 public final void severe(String func, String msg) { |
182 public final void severe(String func, String msg) { |
231 if (ok) |
183 logger.log(Level.ERROR, msg); |
232 logger.logp(java.util.logging.Level.SEVERE, className, func, msg); |
|
233 } |
184 } |
234 |
185 |
235 public final void severe(String func, Throwable t) { |
186 public final void severe(String func, Throwable t) { |
236 if (ok) |
187 logger.log(Level.ERROR, className + "::" + func, t); |
237 logger.logp(java.util.logging.Level.SEVERE, className, func, |
|
238 t.toString(), t); |
|
239 } |
188 } |
240 |
189 |
241 public final void severe(String func, String msg, Throwable t) { |
190 public final void severe(String func, String msg, Throwable t) { |
242 if (ok) |
191 logger.log(Level.ERROR, msg, t); |
243 logger.logp(java.util.logging.Level.SEVERE, className, func, msg, |
192 } |
244 t); |
193 |
245 } |
194 public final String getName() { |
|
195 return logger.getName(); |
|
196 } |
|
197 |
|
198 public final boolean isLoggable(Level level) { |
|
199 return logger.isLoggable(level); |
|
200 } |
|
201 |
|
202 public final void log(Level level, ResourceBundle bundle, String msg, |
|
203 Throwable thrown) { |
|
204 logger.log(level, bundle, msg, thrown); |
|
205 } |
|
206 |
|
207 public final void log(Level level, ResourceBundle bundle, String format, |
|
208 Object... params) { |
|
209 logger.log(level, bundle, format, params); |
|
210 } |
|
211 |
246 } |
212 } |