Skip to content

Commit ea86a68

Browse files
authored
Output event name in SystemOutLogRecordExporter (#8609)
1 parent 6a38cd6 commit ea86a68

3 files changed

Lines changed: 41 additions & 1 deletion

File tree

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,13 @@
22

33
## Unreleased
44

5+
### SDK
6+
7+
#### Exporters
8+
9+
* Logging: Output event name in `SystemOutLogRecordExporter`
10+
([#8609](https://github.com/open-telemetry/opentelemetry-java/pull/8609))
11+
512
## Version 1.64.0 (2026-07-10)
613

714
### API

exporters/logging/src/main/java/io/opentelemetry/exporter/logging/SystemOutLogRecordExporter.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,13 +65,18 @@ public CompletableResultCode flush() {
6565
static void formatLog(StringBuilder stringBuilder, LogRecordData log) {
6666
InstrumentationScopeInfo instrumentationScopeInfo = log.getInstrumentationScopeInfo();
6767
Value<?> body = log.getBodyValue();
68+
String eventName = log.getEventName();
6869
stringBuilder
6970
.append(
7071
ISO_FORMAT.format(
7172
Instant.ofEpochMilli(NANOSECONDS.toMillis(log.getTimestampEpochNanos()))
7273
.atZone(ZoneOffset.UTC)))
7374
.append(" ")
74-
.append(log.getSeverity())
75+
.append(log.getSeverity());
76+
if (eventName != null && !eventName.isEmpty()) {
77+
stringBuilder.append(" [eventName: ").append(eventName).append("]");
78+
}
79+
stringBuilder
7580
.append(" '")
7681
.append(body == null ? "" : body.asString())
7782
.append("' : ")

exporters/logging/src/test/java/io/opentelemetry/exporter/logging/SystemOutLogRecordExporterTest.java

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,34 @@ void format() {
5353
+ "map=KeyValueList{{\"nested\":\"value\"}}}");
5454
}
5555

56+
@Test
57+
void formatWithEventName() {
58+
long timestamp =
59+
LocalDateTime.of(1970, Month.AUGUST, 7, 10, 0).toInstant(ZoneOffset.UTC).toEpochMilli();
60+
LogRecordData log =
61+
TestLogRecordData.builder()
62+
.setResource(Resource.empty())
63+
.setInstrumentationScopeInfo(
64+
InstrumentationScopeInfo.builder("logTest").setVersion("1.0").build())
65+
.setBody("message")
66+
.setSeverity(Severity.ERROR3)
67+
.setEventName("my.event")
68+
.setTimestamp(timestamp, TimeUnit.MILLISECONDS)
69+
.setSpanContext(
70+
SpanContext.create(
71+
"00000000000000010000000000000002",
72+
"0000000000000003",
73+
TraceFlags.getDefault(),
74+
TraceState.getDefault()))
75+
.build();
76+
StringBuilder output = new StringBuilder();
77+
SystemOutLogRecordExporter.formatLog(output, log);
78+
assertThat(output.toString())
79+
.isEqualTo(
80+
"1970-08-07T10:00:00Z ERROR3 [eventName: my.event] 'message' : "
81+
+ "00000000000000010000000000000002 0000000000000003 [scopeInfo: logTest:1.0] {}");
82+
}
83+
5684
@Test
5785
void shutdown() {
5886
SystemOutLogRecordExporter exporter = SystemOutLogRecordExporter.create();

0 commit comments

Comments
 (0)