MCPcopy Create free account
hub / github.com/apache/tomcat / format

Method format

java/org/apache/juli/JsonFormatter.java:54–115  ·  view source on GitHub ↗
(LogRecord record)

Source from the content-addressed store, hash-verified

52 }
53
54 @Override
55 public String format(LogRecord record) {
56 StringBuilder sb = new StringBuilder();
57 sb.append('{');
58
59 // Timestamp
60 sb.append("\"time\": \"");
61 addTimestamp(sb, record.getMillis());
62 sb.append("\", ");
63
64 // Severity
65 sb.append("\"level\": \"");
66 sb.append(record.getLevel().getLocalizedName());
67 sb.append("\", ");
68
69 // Thread
70 sb.append("\"thread\": \"");
71 sb.append(resolveThreadName(record));
72 sb.append("\", ");
73
74 // Source
75 sb.append("\"class\": \"");
76 sb.append(record.getSourceClassName());
77 sb.append("\", ");
78 sb.append("\"method\": \"");
79 sb.append(record.getSourceMethodName());
80 sb.append("\", ");
81
82 // Message
83 sb.append("\"message\": \"");
84 sb.append(JSONFilter.escape(formatMessage(record)));
85
86 Throwable t = record.getThrown();
87 if (t != null) {
88 sb.append("\", ");
89
90 // Stack trace
91 sb.append("\"throwable\": [");
92 boolean first = true;
93 do {
94 if (!first) {
95 sb.append(',');
96 } else {
97 first = false;
98 }
99 sb.append('\"').append(JSONFilter.escape(t.toString())).append('\"');
100 for (StackTraceElement element : t.getStackTrace()) {
101 sb.append(',').append('\"').append(' ').append(JSONFilter.escape(element.toString())).append('\"');
102 }
103 t = t.getCause();
104 } while (t != null);
105 sb.append(']');
106 } else {
107 sb.append('\"');
108 }
109
110 sb.append('}');
111 // New line for next record

Callers 1

testFormatMethod · 0.95

Calls 8

escapeMethod · 0.95
addTimestampMethod · 0.80
getLevelMethod · 0.80
resolveThreadNameMethod · 0.80
toStringMethod · 0.65
appendMethod · 0.45
getStackTraceMethod · 0.45
getCauseMethod · 0.45

Tested by 1

testFormatMethod · 0.76