MCPcopy Create free account
hub / github.com/ReadyTalk/avian / Logging

Class Logging

test/Logging.java:6–150  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4import java.util.logging.Logger;
5
6public class Logging {
7 private static final Logger log = Logger.getLogger("Logging");
8
9 private static class MyHandler extends Handler {
10 private static final int NAME_WIDTH = 18;
11 private static final int METHOD_WIDTH = 20;
12 private static final int LEVEL_WIDTH = 8;
13
14 public Object clone() { return this; }
15 public void close() { }
16 public void flush() { }
17
18 private void maybeLogThrown(StringBuilder sb, Throwable t) {
19 if (t != null) {
20 sb.append("\nCaused by: ");
21 sb.append(t.getClass().getName());
22 sb.append(": ");
23 sb.append(t.getMessage());
24 sb.append('\n');
25
26 for (StackTraceElement elt : t.getStackTrace()) {
27 sb.append('\t');
28 sb.append(elt.getClassName());
29 sb.append('.');
30 sb.append(elt.getMethodName());
31 sb.append('(');
32 sb.append(elt.getFileName());
33 sb.append(':');
34 sb.append(elt.getLineNumber());
35 sb.append(')');
36 sb.append('\n');
37 }
38 maybeLogThrown(sb, t.getCause());
39 }
40 }
41
42 private void indent(StringBuilder sb, int amount) {
43 do {
44 sb.append(' ');
45 } while (--amount > 0);
46 }
47
48 public void publish(LogRecord r) {
49 StringBuilder sb = new StringBuilder();
50 sb.append(r.getLoggerName());
51 indent(sb, NAME_WIDTH - r.getLoggerName().length());
52 String methodName = r.getSourceMethodName();
53 if (methodName == null) {
54 methodName = "<unknown>";
55 }
56 sb.append(methodName);
57 indent(sb, METHOD_WIDTH - methodName.length());
58 sb.append(r.getLevel().getName());
59 indent(sb, LEVEL_WIDTH - r.getLevel().getName().length());
60 sb.append(r.getMessage());
61 maybeLogThrown(sb, r.getThrown());
62 System.out.println(sb.toString());
63 }

Callers

nothing calls this directly

Calls 1

getLoggerMethod · 0.95

Tested by

no test coverage detected