1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.eclipse.jetty.util.log;
18
19 import java.util.logging.Level;
20
21
22
23
24
25
26
27
28
29
30
31 public class JavaUtilLog extends AbstractLogger
32 {
33 private Level configuredLevel;
34 private java.util.logging.Logger _logger;
35
36 public JavaUtilLog()
37 {
38 this("org.eclipse.jetty.util.log");
39 }
40
41 public JavaUtilLog(String name)
42 {
43 _logger = java.util.logging.Logger.getLogger(name);
44 if (Boolean.parseBoolean(Log.__props.getProperty("org.eclipse.jetty.util.log.DEBUG", "false")))
45 {
46 _logger.setLevel(Level.FINE);
47 }
48 configuredLevel = _logger.getLevel();
49 }
50
51 public String getName()
52 {
53 return _logger.getName();
54 }
55
56 public void warn(String msg, Object... args)
57 {
58 _logger.log(Level.WARNING, format(msg, args));
59 }
60
61 public void warn(Throwable thrown)
62 {
63 warn("", thrown);
64 }
65
66 public void warn(String msg, Throwable thrown)
67 {
68 _logger.log(Level.WARNING, msg, thrown);
69 }
70
71 public void info(String msg, Object... args)
72 {
73 _logger.log(Level.INFO, format(msg, args));
74 }
75
76 public void info(Throwable thrown)
77 {
78 info("", thrown);
79 }
80
81 public void info(String msg, Throwable thrown)
82 {
83 _logger.log(Level.INFO, msg, thrown);
84 }
85
86 public boolean isDebugEnabled()
87 {
88 return _logger.isLoggable(Level.FINE);
89 }
90
91 public void setDebugEnabled(boolean enabled)
92 {
93 if (enabled)
94 {
95 configuredLevel = _logger.getLevel();
96 _logger.setLevel(Level.FINE);
97 }
98 else
99 {
100 _logger.setLevel(configuredLevel);
101 }
102 }
103
104 public void debug(String msg, Object... args)
105 {
106 _logger.log(Level.FINE, format(msg, args));
107 }
108
109 public void debug(Throwable thrown)
110 {
111 debug("", thrown);
112 }
113
114 public void debug(String msg, Throwable thrown)
115 {
116 _logger.log(Level.FINE, msg, thrown);
117 }
118
119
120
121
122 protected Logger newLogger(String fullname)
123 {
124 return new JavaUtilLog(fullname);
125 }
126
127 public void ignore(Throwable ignored)
128 {
129 if (Log.isIgnored())
130 {
131 warn(Log.IGNORED, ignored);
132 }
133 }
134
135 private String format(String msg, Object... args)
136 {
137 msg = String.valueOf(msg);
138 String braces = "{}";
139 StringBuilder builder = new StringBuilder();
140 int start = 0;
141 for (Object arg : args)
142 {
143 int bracesIndex = msg.indexOf(braces, start);
144 if (bracesIndex < 0)
145 {
146 builder.append(msg.substring(start));
147 builder.append(" ");
148 builder.append(arg);
149 start = msg.length();
150 }
151 else
152 {
153 builder.append(msg.substring(start, bracesIndex));
154 builder.append(String.valueOf(arg));
155 start = bracesIndex + braces.length();
156 }
157 }
158 builder.append(msg.substring(start));
159 return builder.toString();
160 }
161 }