1 package org.eclipse.jetty.util.log;
2
3
4
5
6
7
8 public abstract class AbstractLogger implements Logger
9 {
10 public final Logger getLogger(String name)
11 {
12 if (isBlank(name))
13 return this;
14
15 final String basename = getName();
16 final String fullname = (isBlank(basename) || Log.getRootLogger()==this)?name:(basename + "." + name);
17
18 Logger logger = Log.getLoggers().get(fullname);
19 if (logger == null)
20 {
21 Logger newlog = newLogger(fullname);
22
23 logger = Log.getMutableLoggers().putIfAbsent(fullname,newlog);
24 if (logger == null)
25 logger=newlog;
26 }
27
28 return logger;
29 }
30
31
32 protected abstract Logger newLogger(String fullname);
33
34
35
36
37
38
39
40
41 private static boolean isBlank(String name)
42 {
43 if (name == null)
44 {
45 return true;
46 }
47 int size = name.length();
48 char c;
49 for (int i = 0; i < size; i++)
50 {
51 c = name.charAt(i);
52 if (!Character.isWhitespace(c))
53 {
54 return false;
55 }
56 }
57 return true;
58 }
59 }