1 package com.protomatter.syslog.util.logging; 2 3 import java.text.MessageFormat ; 4 import java.util.ResourceBundle ; 5 import com.protomatter.syslog.Syslog; 6 import com.protomatter.util.StackTraceUtil; 7 8 16 public class Logger 17 { 18 public static final Logger global = getLogger(Syslog.DEFAULT_CHANNEL); 19 20 private String name = null; 21 private ResourceBundle bundle = null; 22 private String bundleName = null; 23 24 private Level level = null; 25 26 protected Logger(String name, String 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 name) 37 { 38 return new Logger(name, null); 39 } 40 41 public static synchronized Logger getLogger(String name, String 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 resourceBundleName) 52 { 53 return new Logger(Syslog.DEFAULT_CHANNEL, resourceBundleName); 54 } 55 56 public ResourceBundle getResourceBundle() 57 { 58 return bundle; 59 } 60 61 public String getResourceBundleName() 62 { 63 return bundleName; 64 } 65 66 public void log(Level level, String 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 message, Object param) 74 { 75 Syslog.log(Syslog.getLocalHostName(), this, name, 76 MessageFormat.format(message, new Object [] { param }), null, level.intValue(), 77 Thread.currentThread(), Thread.currentThread().getName(), 78 System.currentTimeMillis(), 1); 79 } 80 81 public void log(Level level, String message, Object [] params) 82 { 83 Syslog.log(Syslog.getLocalHostName(), this, name, 84 MessageFormat.format(message, new Object [] { expand(params) }), null, level.intValue(), 85 Thread.currentThread(), Thread.currentThread().getName(), 86 System.currentTimeMillis(), 1); 87 } 88 89 public void log(Level level, String message, Throwable 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 className, String methodName, String 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 className, String methodName, String message, Object param) 104 { 105 Syslog.log(Syslog.getLocalHostName(), this, name, 106 MessageFormat.format(message, new Object [] { param }), null, level.intValue(), 107 Thread.currentThread(), Thread.currentThread().getName(), 108 System.currentTimeMillis(), 1); 109 } 110 111 public void logp(Level level, String className, String methodName, String message, Object [] params) 112 { 113 Syslog.log(Syslog.getLocalHostName(), this, name, 114 MessageFormat.format(message, new Object [] { expand(params) }), null, level.intValue(), 115 Thread.currentThread(), Thread.currentThread().getName(), 116 System.currentTimeMillis(), 1); 117 } 118 119 public void logp(Level level, String className, String methodName, String message, Throwable 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 className, String methodName, String bundleName, String 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 className, String methodName, String bundleName, String message, Object param) 134 { 135 Syslog.log(Syslog.getLocalHostName(), this, name, 136 MessageFormat.format(message, new Object [] { param }), 137 null, level.intValue(), 138 Thread.currentThread(), Thread.currentThread().getName(), 139 System.currentTimeMillis(), 1); 140 } 141 142 public void logrb(Level level, String className, String methodName, String bundleName, String message, Object [] params) 143 { 144 Syslog.log(Syslog.getLocalHostName(), this, name, 145 MessageFormat.format(message, new Object [] { expand(params) }), null, level.intValue(), 146 Thread.currentThread(), Thread.currentThread().getName(), 147 System.currentTimeMillis(), 1); 148 } 149 150 public void logrb(Level level, String className, String methodName, String bundleName, String message, Throwable 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 className, String methodName) 159 { 160 Syslog.log(Syslog.getLocalHostName(), this, name, 161 MessageFormat.format( 162 LogResources.getResourceString(MessageConstants.ENTERING_MESSAGE), 163 new Object [] { StackTraceUtil.whereAmI(1) }), 164 null, Syslog.DEBUG, 165 Thread.currentThread(), Thread.currentThread().getName(), 166 System.currentTimeMillis(), 1); 167 } 168 169 public void entering(String className, String methodName, Object param) 170 { 171 Syslog.log(Syslog.getLocalHostName(), this, name, 172 MessageFormat.format( 173 LogResources.getResourceString(MessageConstants.ENTERING_WITH_PARAM_MESSAGE), 174 new Object [] { 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 className, String methodName, Object [] params) 181 { 182 Syslog.log(Syslog.getLocalHostName(), this, name, 183 MessageFormat.format( 184 LogResources.getResourceString(MessageConstants.ENTERING_WITH_PARAM_MESSAGE), 185 new Object [] { 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 className, String methodName) 192 { 193 Syslog.log(Syslog.getLocalHostName(), this, name, 194 MessageFormat.format( 195 LogResources.getResourceString(MessageConstants.EXITING_MESSAGE), 196 new Object [] { StackTraceUtil.whereAmI(1) }), 197 null, Syslog.DEBUG, 198 Thread.currentThread(), Thread.currentThread().getName(), 199 System.currentTimeMillis(), 1); 200 } 201 202 public void exiting(String className, String methodName, Object param) 203 { 204 Syslog.log(Syslog.getLocalHostName(), this, name, 205 MessageFormat.format( 206 LogResources.getResourceString(MessageConstants.EXITING_WITH_PARAM_MESSAGE), 207 new Object [] { 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 className, String methodName, Throwable t) 214 { 215 Syslog.log(Syslog.getLocalHostName(), this, name, 216 MessageFormat.format( 217 LogResources.getResourceString(MessageConstants.THROWING_MESSAGE), 218 new Object [] { t, StackTraceUtil.whereAmI(1) }), t, Syslog.DEBUG, 219 Thread.currentThread(), Thread.currentThread().getName(), 220 System.currentTimeMillis(), 1); 221 } 222 223 public void severe(String 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 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 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 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 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 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 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 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 getName() 289 { 290 return this.name; 291 } 292 293 private Object expand(Object array[]) 294 { 295 StringBuffer b = new StringBuffer (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 |