KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > protomatter > syslog > util > logging > Logger


1 package com.protomatter.syslog.util.logging;
2
3 import java.text.MessageFormat JavaDoc;
4 import java.util.ResourceBundle JavaDoc;
5 import com.protomatter.syslog.Syslog;
6 import com.protomatter.util.StackTraceUtil;
7
8 /**
9  * See <TT><a target="_top" HREF="http://java.sun.com/j2se/1.4/docs/api/java/util/logging/Logger.html">java.util.logging.Logger</A></TT>.
10  *
11  * Note that if you use this class, and don't have Syslog configured to compute
12  * the caller class and method, then the caller name in your logs will be
13  * incorrect. This is because the JDK 1.4 logging API doesn't have a mechanism
14  * for directly getting a reference to the caller.<P>
15  */

16 public class Logger
17 {
18     public static final Logger global = getLogger(Syslog.DEFAULT_CHANNEL);
19
20     private String JavaDoc name = null;
21     private ResourceBundle JavaDoc bundle = null;
22     private String JavaDoc bundleName = null;
23
24     private Level level = null;
25
26     protected Logger(String JavaDoc name, String JavaDoc resourceBundleName)
27     {
28         this.name = name;
29         this.bundleName = resourceBundleName;
30         if (bundleName != null)
31         {
32             bundle = ResourceBundle.getBundle(bundleName);
33         }
34     }
35
36     public static synchronized Logger getLogger(String JavaDoc name)
37     {
38         return new Logger(name, null);
39     }
40
41     public static synchronized Logger getLogger(String JavaDoc name, String JavaDoc resourceBundleName)
42     {
43         return new Logger(name, resourceBundleName);
44     }
45
46     public static synchronized Logger getAnonymousLogger()
47     {
48         return global;
49     }
50
51     public static synchronized Logger getAnonymousLogger(String JavaDoc resourceBundleName)
52     {
53         return new Logger(Syslog.DEFAULT_CHANNEL, resourceBundleName);
54     }
55
56     public ResourceBundle JavaDoc getResourceBundle()
57     {
58         return bundle;
59     }
60
61     public String JavaDoc getResourceBundleName()
62     {
63         return bundleName;
64     }
65
66     public void log(Level level, String JavaDoc message)
67     {
68         Syslog.log(Syslog.getLocalHostName(), this, name, message, null, level.intValue(),
69             Thread.currentThread(), Thread.currentThread().getName(),
70             System.currentTimeMillis(), 1);
71     }
72
73     public void log(Level level, String JavaDoc message, Object JavaDoc param)
74     {
75         Syslog.log(Syslog.getLocalHostName(), this, name,
76             MessageFormat.format(message, new Object JavaDoc[] { param }), null, level.intValue(),
77             Thread.currentThread(), Thread.currentThread().getName(),
78             System.currentTimeMillis(), 1);
79     }
80
81     public void log(Level level, String JavaDoc message, Object JavaDoc[] params)
82     {
83         Syslog.log(Syslog.getLocalHostName(), this, name,
84             MessageFormat.format(message, new Object JavaDoc[] { expand(params) }), null, level.intValue(),
85             Thread.currentThread(), Thread.currentThread().getName(),
86             System.currentTimeMillis(), 1);
87     }
88
89     public void log(Level level, String JavaDoc message, Throwable JavaDoc t)
90     {
91         Syslog.log(Syslog.getLocalHostName(), this, name, message, t, level.intValue(),
92             Thread.currentThread(), Thread.currentThread().getName(),
93             System.currentTimeMillis(), 1);
94     }
95
96     public void logp(Level level, String JavaDoc className, String JavaDoc methodName, String JavaDoc message)
97     {
98         Syslog.log(Syslog.getLocalHostName(), this, name, message, null, level.intValue(),
99             Thread.currentThread(), Thread.currentThread().getName(),
100             System.currentTimeMillis(), 1);
101     }
102
103     public void logp(Level level, String JavaDoc className, String JavaDoc methodName, String JavaDoc message, Object JavaDoc param)
104     {
105         Syslog.log(Syslog.getLocalHostName(), this, name,
106             MessageFormat.format(message, new Object JavaDoc[] { param }), null, level.intValue(),
107             Thread.currentThread(), Thread.currentThread().getName(),
108             System.currentTimeMillis(), 1);
109     }
110
111     public void logp(Level level, String JavaDoc className, String JavaDoc methodName, String JavaDoc message, Object JavaDoc[] params)
112     {
113         Syslog.log(Syslog.getLocalHostName(), this, name,
114             MessageFormat.format(message, new Object JavaDoc[] { expand(params) }), null, level.intValue(),
115             Thread.currentThread(), Thread.currentThread().getName(),
116             System.currentTimeMillis(), 1);
117     }
118
119     public void logp(Level level, String JavaDoc className, String JavaDoc methodName, String JavaDoc message, Throwable JavaDoc t)
120     {
121         Syslog.log(Syslog.getLocalHostName(), this, name, message, t, level.intValue(),
122             Thread.currentThread(), Thread.currentThread().getName(),
123             System.currentTimeMillis(), 1);
124     }
125
126     public void logrb(Level level, String JavaDoc className, String JavaDoc methodName, String JavaDoc bundleName, String JavaDoc message)
127     {
128         Syslog.log(Syslog.getLocalHostName(), this, name, message, null, level.intValue(),
129             Thread.currentThread(), Thread.currentThread().getName(),
130             System.currentTimeMillis(), 1);
131     }
132
133     public void logrb(Level level, String JavaDoc className, String JavaDoc methodName, String JavaDoc bundleName, String JavaDoc message, Object JavaDoc param)
134     {
135         Syslog.log(Syslog.getLocalHostName(), this, name,
136             MessageFormat.format(message, new Object JavaDoc[] { param }),
137             null, level.intValue(),
138             Thread.currentThread(), Thread.currentThread().getName(),
139             System.currentTimeMillis(), 1);
140     }
141
142     public void logrb(Level level, String JavaDoc className, String JavaDoc methodName, String JavaDoc bundleName, String JavaDoc message, Object JavaDoc[] params)
143     {
144         Syslog.log(Syslog.getLocalHostName(), this, name,
145             MessageFormat.format(message, new Object JavaDoc[] { expand(params) }), null, level.intValue(),
146             Thread.currentThread(), Thread.currentThread().getName(),
147             System.currentTimeMillis(), 1);
148     }
149
150     public void logrb(Level level, String JavaDoc className, String JavaDoc methodName, String JavaDoc bundleName, String JavaDoc message, Throwable JavaDoc t)
151     {
152         Syslog.log(Syslog.getLocalHostName(), this, name,
153             message, t, level.intValue(),
154             Thread.currentThread(), Thread.currentThread().getName(),
155             System.currentTimeMillis(), 1);
156     }
157
158     public void entering(String JavaDoc className, String JavaDoc methodName)
159     {
160         Syslog.log(Syslog.getLocalHostName(), this, name,
161             MessageFormat.format(
162                 LogResources.getResourceString(MessageConstants.ENTERING_MESSAGE),
163                 new Object JavaDoc[] { StackTraceUtil.whereAmI(1) }),
164             null, Syslog.DEBUG,
165             Thread.currentThread(), Thread.currentThread().getName(),
166             System.currentTimeMillis(), 1);
167     }
168
169     public void entering(String JavaDoc className, String JavaDoc methodName, Object JavaDoc param)
170     {
171         Syslog.log(Syslog.getLocalHostName(), this, name,
172             MessageFormat.format(
173                 LogResources.getResourceString(MessageConstants.ENTERING_WITH_PARAM_MESSAGE),
174                 new Object JavaDoc[] { StackTraceUtil.whereAmI(1), param }),
175             null, Syslog.DEBUG,
176             Thread.currentThread(), Thread.currentThread().getName(),
177             System.currentTimeMillis(), 1);
178     }
179
180     public void entering(String JavaDoc className, String JavaDoc methodName, Object JavaDoc[] params)
181     {
182         Syslog.log(Syslog.getLocalHostName(), this, name,
183             MessageFormat.format(
184                 LogResources.getResourceString(MessageConstants.ENTERING_WITH_PARAM_MESSAGE),
185                 new Object JavaDoc[] { StackTraceUtil.whereAmI(1), expand(params) }),
186             null, Syslog.DEBUG,
187             Thread.currentThread(), Thread.currentThread().getName(),
188             System.currentTimeMillis(), 1);
189     }
190
191     public void exiting(String JavaDoc className, String JavaDoc methodName)
192     {
193         Syslog.log(Syslog.getLocalHostName(), this, name,
194             MessageFormat.format(
195                 LogResources.getResourceString(MessageConstants.EXITING_MESSAGE),
196                 new Object JavaDoc[] { StackTraceUtil.whereAmI(1) }),
197             null, Syslog.DEBUG,
198             Thread.currentThread(), Thread.currentThread().getName(),
199             System.currentTimeMillis(), 1);
200     }
201
202     public void exiting(String JavaDoc className, String JavaDoc methodName, Object JavaDoc param)
203     {
204         Syslog.log(Syslog.getLocalHostName(), this, name,
205             MessageFormat.format(
206                 LogResources.getResourceString(MessageConstants.EXITING_WITH_PARAM_MESSAGE),
207                 new Object JavaDoc[] { StackTraceUtil.whereAmI(1), param }),
208             null, Syslog.DEBUG,
209             Thread.currentThread(), Thread.currentThread().getName(),
210             System.currentTimeMillis(), 1);
211     }
212
213     public void throwing(String JavaDoc className, String JavaDoc methodName, Throwable JavaDoc t)
214     {
215         Syslog.log(Syslog.getLocalHostName(), this, name,
216             MessageFormat.format(
217                 LogResources.getResourceString(MessageConstants.THROWING_MESSAGE),
218                 new Object JavaDoc[] { t, StackTraceUtil.whereAmI(1) }), t, Syslog.DEBUG,
219             Thread.currentThread(), Thread.currentThread().getName(),
220             System.currentTimeMillis(), 1);
221     }
222
223     public void severe(String JavaDoc message)
224     {
225         Syslog.log(Syslog.getLocalHostName(), this, name, message, null, Syslog.ERROR,
226             Thread.currentThread(), Thread.currentThread().getName(),
227             System.currentTimeMillis(), 1);
228     }
229
230     public void warning(String JavaDoc message)
231     {
232         Syslog.log(Syslog.getLocalHostName(), this, name, message, null, Syslog.WARNING,
233             Thread.currentThread(), Thread.currentThread().getName(),
234             System.currentTimeMillis(), 1);
235     }
236
237     public void info(String JavaDoc message)
238     {
239         Syslog.log(Syslog.getLocalHostName(), this, name, message, null, Syslog.INFO,
240             Thread.currentThread(), Thread.currentThread().getName(),
241             System.currentTimeMillis(), 1);
242     }
243
244     public void config(String JavaDoc message)
245     {
246         Syslog.log(Syslog.getLocalHostName(), this, name, message, null, Syslog.DEBUG,
247             Thread.currentThread(), Thread.currentThread().getName(),
248             System.currentTimeMillis(), 1);
249     }
250
251     public void fine(String JavaDoc message)
252     {
253         Syslog.log(Syslog.getLocalHostName(), this, name, message, null, Syslog.DEBUG,
254             Thread.currentThread(), Thread.currentThread().getName(),
255             System.currentTimeMillis(), 1);
256     }
257
258     public void finer(String JavaDoc message)
259     {
260         Syslog.log(Syslog.getLocalHostName(), this, name, message, null, Syslog.DEBUG,
261             Thread.currentThread(), Thread.currentThread().getName(),
262             System.currentTimeMillis(), 1);
263     }
264
265     public void finest(String JavaDoc message)
266     {
267         Syslog.log(Syslog.getLocalHostName(), this, name, message, null, Syslog.DEBUG,
268             Thread.currentThread(), Thread.currentThread().getName(),
269             System.currentTimeMillis(), 1);
270     }
271
272     public void setLevel(Level level)
273     throws SecurityException JavaDoc
274     {
275         this.level = level;
276     }
277
278     public Level getLevel()
279     {
280         return this.level;
281     }
282
283     public boolean isLoggable(Level level)
284     {
285         return Syslog.inMask(level.intValue(), Syslog.getLogMask());
286     }
287
288     public String JavaDoc getName()
289     {
290         return this.name;
291     }
292
293     private Object JavaDoc expand(Object JavaDoc array[])
294     {
295         StringBuffer JavaDoc b = new StringBuffer JavaDoc(128);
296         for (int i=0; i<array.length; i++)
297         {
298             b.append(array[i]);
299             if (i < (array.length -1))
300                 b.append(", ");
301         }
302         return b;
303     }
304 }
305
Popular Tags