1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 package org.eclipse.jgit.junit.http;
45
46 import java.text.MessageFormat;
47 import java.util.ArrayList;
48 import java.util.Collections;
49 import java.util.List;
50
51 import org.eclipse.jetty.util.log.Logger;
52
53
54 public class RecordingLogger implements Logger {
55 private static List<Warning> warnings = new ArrayList<Warning>();
56
57
58 public static void clear() {
59 synchronized (warnings) {
60 warnings.clear();
61 }
62 }
63
64
65 public static List<Warning> getWarnings() {
66 synchronized (warnings) {
67 ArrayList<Warning> copy = new ArrayList<Warning>(warnings);
68 return Collections.unmodifiableList(copy);
69 }
70 }
71
72 @SuppressWarnings("serial")
73 public static class Warning extends Exception {
74 public Warning(String msg) {
75 super(msg);
76 }
77
78 public Warning(String msg, Throwable cause) {
79 super(msg, cause);
80 }
81
82 public Warning(Throwable thrown) {
83 super(thrown);
84 }
85 }
86
87 private final String name;
88
89 public RecordingLogger() {
90 this("");
91 }
92
93 public RecordingLogger(final String name) {
94 this.name = name;
95 }
96
97 public Logger getLogger(@SuppressWarnings("hiding") String name) {
98 return new RecordingLogger(name);
99 }
100
101 public String getName() {
102 return name;
103 }
104
105 public void warn(String msg, Object arg0, Object arg1) {
106 synchronized (warnings) {
107 warnings.add(new Warning(MessageFormat.format(msg, arg0, arg1)));
108 }
109 }
110
111 public void warn(String msg, Throwable th) {
112 synchronized (warnings) {
113 warnings.add(new Warning(msg, th));
114 }
115 }
116
117 public void warn(String msg) {
118 synchronized (warnings) {
119 warnings.add(new Warning(msg));
120 }
121 }
122
123 public void debug(@SuppressWarnings("unused") String msg,
124 @SuppressWarnings("unused") Object arg0,
125 @SuppressWarnings("unused") Object arg1) {
126
127 }
128
129 public void debug(String msg, Throwable th) {
130
131 }
132
133 public void debug(@SuppressWarnings("unused") String msg) {
134
135 }
136
137 public void info(@SuppressWarnings("unused") String msg,
138 @SuppressWarnings("unused") Object arg0,
139 @SuppressWarnings("unused") Object arg1) {
140
141 }
142
143 public void info(@SuppressWarnings("unused") String msg) {
144
145 }
146
147 public boolean isDebugEnabled() {
148 return false;
149 }
150
151 public void setDebugEnabled(boolean enabled) {
152
153 }
154
155 public void warn(String msg, Object... args) {
156 synchronized (warnings) {
157 warnings.add(new Warning(MessageFormat.format(msg, args)));
158 }
159 }
160
161 public void warn(Throwable thrown) {
162 synchronized (warnings) {
163 warnings.add(new Warning(thrown));
164 }
165 }
166
167 public void info(String msg, Object... args) {
168
169 }
170
171 public void info(Throwable thrown) {
172
173 }
174
175 public void info(String msg, Throwable thrown) {
176
177 }
178
179 public void debug(String msg, Object... args) {
180
181 }
182
183 public void debug(Throwable thrown) {
184
185 }
186
187 public void ignore(Throwable arg0) {
188
189 }
190
191 @Override
192 public void debug(String msg, long value) {
193
194 }
195 }