Skip to content

Commit 4ff3266

Browse files
author
Cecile Terpin
committed
init tests + formatting
1 parent 10f5803 commit 4ff3266

File tree

7 files changed

+63
-27
lines changed

7 files changed

+63
-27
lines changed

dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/Agent.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1106,8 +1106,7 @@ private static void configureLogger() {
11061106
setSystemPropertyDefault(SIMPLE_LOGGER_SHOW_DATE_TIME_PROPERTY, "true");
11071107
setSystemPropertyDefault(
11081108
SIMPLE_LOGGER_DATE_TIME_FORMAT_PROPERTY, SIMPLE_LOGGER_DATE_TIME_FORMAT_DEFAULT);
1109-
setSystemPropertyDefault(
1110-
SIMPLE_LOGGER_JSON_ENABLED_PROPERTY, "false");
1109+
setSystemPropertyDefault(SIMPLE_LOGGER_JSON_ENABLED_PROPERTY, "false");
11111110

11121111
String logLevel;
11131112
if (isDebugMode()) {

dd-java-agent/agent-logging/src/main/java/datadog/trace/logging/simplelogger/SLCompatHelper.java

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package datadog.trace.logging.simplelogger;
22

33
import static datadog.trace.util.Strings.escapeToJson;
4+
45
import datadog.trace.logging.LogLevel;
56
import datadog.trace.logging.LoggerHelper;
67
import org.slf4j.Marker;
@@ -35,11 +36,11 @@ public void log(LogLevel level, Marker marker, String message, Throwable t) {
3536
if (settings.showDateTime) {
3637
timeMillis = System.currentTimeMillis();
3738
}
38-
39+
System.out.println("CTE settings.jsonEnabled: " + settings.jsonEnabled);
3940
if (settings.jsonEnabled) {
40-
logJson(level, marker, SLCompatFactory.START_TIME, timeMillis, message, t);
41+
logJson(level, marker, SLCompatFactory.START_TIME, timeMillis, message, t);
4142
} else {
42-
log(level, marker, SLCompatFactory.START_TIME, timeMillis, message, t);
43+
log(level, marker, SLCompatFactory.START_TIME, timeMillis, message, t);
4344
}
4445
}
4546

@@ -146,7 +147,7 @@ void logJson(
146147
StringBuilder buf = new StringBuilder(32);
147148

148149
buf.append("{");
149-
150+
150151
if (timeMillis >= 0 && settings.showDateTime) {
151152
embedJsonKey(buf, "time");
152153
settings.dateTimeFormatter.appendFormattedDate(buf, timeMillis, startTimeMillis);
@@ -158,12 +159,13 @@ void logJson(
158159
}
159160

160161
embedJsonKey(buf, "level");
162+
161163
if (settings.warnLevelString != null && level == LogLevel.WARN) {
162-
embedJsonValue(buf, settings.warnLevelString, true);
164+
embedJsonValue(buf, wrappedValueWithBracketsIfRequested(settings.warnLevelString), true);
163165
} else if (marker != null) {
164-
embedJsonValue(buf, marker.getName(), true);
166+
embedJsonValue(buf, wrappedValueWithBracketsIfRequested(marker.getName()), true);
165167
} else {
166-
embedJsonValue(buf, level.name(), true);
168+
embedJsonValue(buf, wrappedValueWithBracketsIfRequested(level.name()), true);
167169
}
168170

169171
if (!logName.isEmpty()) {
@@ -184,7 +186,10 @@ void logJson(
184186
private void embedJson(StringBuilder buf, String key, String value, boolean withComma) {
185187
embedJsonKey(buf, key);
186188
embedJsonValue(buf, value, withComma);
189+
}
187190

191+
private String wrappedValueWithBracketsIfRequested(String value) {
192+
return settings.levelInBrackets ? '[' + value + ']' : value;
188193
}
189194

190195
private void embedJsonKey(StringBuilder buf, String key) {
@@ -197,10 +202,11 @@ private void embedJsonValue(StringBuilder buf, String value, boolean withComma)
197202
buf.append(",");
198203
}
199204
}
205+
200206
private void embedExceptionJson(StringBuilder buf, Throwable t) {
201207
buf.append("\"exception\":{");
202-
embedJson(buf, "message",escapeToJson(t.getMessage()), true);
203-
int length = t.getStackTrace().length;
208+
embedJson(buf, "message", escapeToJson(t.getMessage()), true);
209+
int length = t.getStackTrace().length;
204210
if (length > 0) {
205211
buf.append("\"stackTrace\":[\"");
206212
int count = 0;

dd-java-agent/agent-logging/src/main/java/datadog/trace/logging/simplelogger/SLCompatSettings.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package datadog.trace.logging.simplelogger;
22

3-
import static java.time.format.DateTimeFormatter.ISO_OFFSET_DATE_TIME;
4-
53
import datadog.trace.logging.LogLevel;
64
import datadog.trace.logging.LogReporter;
75
import datadog.trace.logging.PrintStreamWrapper;
@@ -39,7 +37,6 @@ public static final class Names {
3937
public static final String DEFAULT_LOG_LEVEL = "defaultLogLevel";
4038
public static final String EMBED_EXCEPTION = "embedException";
4139
public static final String CONFIGURATION_FILE = "configurationFile";
42-
4340
}
4441

4542
public static final class Keys {

dd-java-agent/agent-logging/src/test/groovy/datadog/trace/logging/ddlogger/DDLoggerTest.groovy

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -359,6 +359,7 @@ class DDLoggerTest extends LogValidatingSpecification {
359359
(Names.SHOW_SHORT_LOG_NAME): Defaults.SHOW_SHORT_LOG_NAME,
360360
(Names.SHOW_THREAD_NAME): false,
361361
(Names.SHOW_DATE_TIME): true,
362+
(Names.JSON_ENABLED): Defaults.JSON_ENABLED,
362363
(Names.DATE_TIME_FORMAT): "relative",
363364
(Names.DEFAULT_LOG_LEVEL): expectedLevel,
364365
(Names.EMBED_EXCEPTION): Defaults.EMBED_EXCEPTION,

dd-java-agent/agent-logging/src/test/groovy/datadog/trace/logging/simplelogger/SLCompatHelperTest.groovy

Lines changed: 43 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package datadog.trace.logging.simplelogger
22

33
import datadog.trace.logging.LogLevel
4+
import org.slf4j.Marker
45
import spock.lang.Shared
56
import spock.lang.Specification
67

@@ -139,25 +140,54 @@ class SLCompatHelperTest extends Specification {
139140
def printStream = new PrintStream(outputStream, true)
140141
def props = new Properties()
141142
def dateTimeFormatter = SLCompatSettings.DTFormatter.create(dateTFS)
142-
def settings = new SLCompatSettings(props, props, warnS, showB, printStream, showS, showL, showT, dateTimeFormatter, showDT, LogLevel.INFO, false)
143+
def settings = new SLCompatSettings(props, props, warnS, showB, printStream, showS, showL, showT, dateTimeFormatter, showDT, jsonE, LogLevel.INFO, false)
143144
def helper = new SLCompatHelper("foo.bar", settings)
145+
144146
helper.log(level, null, 0, 4711, "thread", "log", null)
145147

146148
then:
147149
outputStream.toString() == expected
148150

149151
where:
150-
level | warnS | showB | showS | showL | showT | dateTFS | showDT | expected
151-
LogLevel.WARN | null | false | false | false | false | null | false | "WARN log\n"
152-
LogLevel.WARN | "DANGER" | false | false | false | false | null | false | "DANGER log\n"
153-
LogLevel.INFO | "DANGER" | false | false | false | false | null | false | "INFO log\n"
154-
LogLevel.WARN | null | true | false | false | false | null | false | "[WARN] log\n"
155-
LogLevel.INFO | null | false | true | false | false | null | false | "INFO bar - log\n"
156-
LogLevel.INFO | null | true | true | true | false | null | false | "[INFO] bar - log\n"
157-
LogLevel.INFO | null | true | false | true | false | null | false | "[INFO] foo.bar - log\n"
158-
LogLevel.INFO | null | false | false | false | true | null | false | "[thread] INFO log\n"
159-
LogLevel.INFO | null | false | false | false | true | null | true | "4711 [thread] INFO log\n"
160-
LogLevel.INFO | null | false | false | false | true | "yyyy-MM-dd HH:mm:ss z" | false | "[thread] INFO log\n"
161-
LogLevel.INFO | null | false | false | false | true | "yyyy-MM-dd HH:mm:ss z" | true | "${new SimpleDateFormat("yyyy-MM-dd HH:mm:ss z").format(new Date(4711))} [thread] INFO log\n"
152+
level | warnS | showB | showS | showL | showT | dateTFS | showDT | jsonE | expected
153+
LogLevel.WARN | null | false | false | false | false | null | false | false | "WARN log\n"
154+
LogLevel.WARN | "DANGER" | false | false | false | false | null | false | false | "DANGER log\n"
155+
LogLevel.INFO | "DANGER" | false | false | false | false | null | false | false | "INFO log\n"
156+
LogLevel.WARN | null | true | false | false | false | null | false | false | "[WARN] log\n"
157+
LogLevel.INFO | null | false | true | false | false | null | false | false | "INFO bar - log\n"
158+
LogLevel.INFO | null | true | true | true | false | null | false | false | "[INFO] bar - log\n"
159+
LogLevel.INFO | null | true | false | true | false | null | false | false | "[INFO] foo.bar - log\n"
160+
LogLevel.INFO | null | false | false | false | true | null | false | false | "[thread] INFO log\n"
161+
LogLevel.INFO | null | false | false | false | true | null | true | false | "4711 [thread] INFO log\n"
162+
LogLevel.INFO | null | false | false | false | true | "yyyy-MM-dd HH:mm:ss z" | false | false | "[thread] INFO log\n"
163+
LogLevel.INFO | null | false | false | false | true | "yyyy-MM-dd HH:mm:ss z" | true | false | "${new SimpleDateFormat("yyyy-MM-dd HH:mm:ss z").format(new Date(4711))} [thread] INFO log\n"
164+
}
165+
166+
167+
def "test log output with JSon configuration"() {
168+
when:
169+
def outputStream = new ByteArrayOutputStream()
170+
def printStream = new PrintStream(outputStream, true)
171+
def props = new Properties()
172+
def dateTimeFormatter = SLCompatSettings.DTFormatter.create(dateTFS)
173+
def settings = new SLCompatSettings(props, props, warnS, showB, printStream, showS, showL, showT, dateTimeFormatter, showDT, jsonE, LogLevel.INFO, false)
174+
def helper = new SLCompatHelper("foo.bar", settings)
175+
176+
helper. log(level, null, "log", null)
177+
178+
then:
179+
outputStream.toString() == expected
180+
181+
where:
182+
level | warnS | showB | showS | showL | showT | dateTFS | showDT | jsonE | expected
183+
LogLevel.WARN | null | false | false | false | false | null | false | false | "WARN log\n"
184+
LogLevel.WARN | "DANGER" | false | false | false | false | null | false | true | "{\"level\":\"DANGER\",\"message\":\"log\"}\n"
185+
LogLevel.INFO | "DANGER" | false | false | false | false | null | false | true | "{\"level\":\"INFO\",\"message\":\"log\"}\n"
186+
LogLevel.WARN | null | true | false | false | false | null | false | true | "{\"level\":\"[WARN]\",\"message\":\"log\"}\n"
187+
LogLevel.INFO | null | false | true | false | false | null | false | true | "{\"level\":\"INFO\",\"loggerName\":\"bar\",\"message\":\"log\"}\n"
188+
LogLevel.INFO | null | true | true | true | false | null | false | true | "{\"level\":\"[INFO]\",\"loggerName\":\"bar\",\"message\":\"log\"}\n"
189+
LogLevel.INFO | null | true | false | true | false | null | false | true | "{\"level\":\"[INFO]\",\"loggerName\":\"foo.bar\",\"message\":\"log\"}\n"
190+
LogLevel.INFO | null | false | false | false | true | null | false | true | "{\"threadName\":\"Test worker\",\"level\":\"INFO\",\"message\":\"log\"}\n"
191+
LogLevel.INFO | null | false | false | false | true | "yyyy-MM-dd HH:mm:ss z" | false | true | "{\"threadName\":\"Test worker\",\"level\":\"INFO\",\"message\":\"log\"}\n"
162192
}
163193
}

dd-java-agent/agent-logging/src/test/groovy/datadog/trace/logging/simplelogger/SLCompatSettingsTest.groovy

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ class SLCompatSettingsTest extends Specification {
7171
settings.dateTimeFormatter.class == SLCompatSettings.DiffDTFormatter
7272
settings.showDateTime == false
7373
settings.defaultLogLevel == LogLevel.INFO
74+
settings.jsonEnabled == false
7475
}
7576

7677
def "test file properties"() {
@@ -91,6 +92,7 @@ class SLCompatSettingsTest extends Specification {
9192
formatted.toString() == new SimpleDateFormat("'['yy-dd-MM HH:mm:ss:SSS Z']'").format(new Date(4711 << 20))
9293
settings.showDateTime == true
9394
settings.defaultLogLevel == LogLevel.DEBUG
95+
settings.jsonEnabled == true
9496
}
9597

9698
def "test log file creation"() {

dd-java-agent/agent-logging/src/test/resources/slcompatsettingstest.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,4 @@ datadog.slf4j.simpleLogger.showThreadName = false
77
datadog.slf4j.simpleLogger.dateTimeFormat = '['yy-dd-MM HH:mm:ss:SSS Z']'
88
datadog.slf4j.simpleLogger.showDateTime = true
99
datadog.slf4j.simpleLogger.defaultLogLevel = DEBUG
10+
datadog.slf4j.simpleLogger.json.enabled = true

0 commit comments

Comments
 (0)